Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Активировать созданные переменные

Создаем Анимацию на Delphi. Построение анимированных сцен на Delphi.

Заготовки для создания динамических игр на Delphi

 

 

Используемые компоненты

Image1 (Графический холст) находится на вкладке Additional

Timer1 (Таймер)

 

Цель работы.

Создадим несложную анимацию, по морю будет плавать нарисованный нами в Paint е кораблик, которым мы можем управлять с помощью стрелок курсора клавиатуры

 

 

1) И так находим изображение моря. Задаем размер картинки в пикселях 600*400. Для этого можем использовать программу Фотошоп или тот же Paint. Задаем имя картинке fon.bmp

 

2) Рисуем в программе Paint небольшой кораблик установив размер картинки 110*140 пикселей Задаем имя картинке korb.bmp

Существенно, что вокруг кораблика белый фон.

Используя команду korb.transparent:=true;//Прозрачность вокруг контура корабля

Белый фон преобразуется в прозрачный фон.

 

Теперь немного теории

В описании переменных объявляем две переменных для хранения графических картинок, тип tbitmap

 

fon:tbitmap;// Графический образ Фона

korb::tbitmap;//Графический образ корабля

 

Для того чтобы вывести на экран изображения нужно

Активировать созданные переменные

fon:=tbitmap.Create;//

korb:=tbitmap.Create;//

2) Загрузить изображения в эти переменные

fon.LoadFromFile('fon.bmp');// Загрузить в переменную 'fon' файл 'fon.bmp'

korb.LoadFromFile('korb.bmp');// Загрузить в переменную 'korb' файл 'korb.bmp'

 

3) Установить прозрачный фон вокруг корабля

korb.transparent:=true;//Прозрачность вокруг контура корабля

 

4) И наконец вывести эти изображения на графический холст Image

image1.Canvas.Draw(0,0,fon);//

image1.Canvas.Draw(x,60,korb);//

При этом первая цифра в скобках, это координата x, а вторая цифра соответственно координата y

5) Для того, чтобы изображения стали двигаться, необходимо динамически менять координаты изображений на холсте, желательно стирая старое изображение.

Эту задачу выполняет компонент Timer

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

x:=x+shx;//текущая координата + шаг

if x>500 then shx:=shx*-1;// ограничение справа

if x<0 then shx:=shx*-1;//ограничение слева

image1.Canvas.Draw(0,0,fon);//возобновление фона

image1.Canvas.Draw(x,60,korb);//движение корабля

end;

 

Один раз за одну сотую секунды он пересчитывает координату x корабля

x:=x+shx;//текущая координата, при этом переменная shx (шаг движения)

может принимать как, положительные так и отрицательные значения

С помощью двух условий создаем ограничения для движения слева и справа.

 

6) Чтобы, управлять кораблем стрелками клавиатуры, используем событие в evens на форме rmKeyDown

 

procedure TForm1.rmKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if key=37 then shx:=-15;//движение влево

if key=39 then shx:=15;//движение вправо

 

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...