Активировать созданные переменные
Создаем Анимацию на 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|