ФРТ, гр. 2106
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Graphics::TBitmap *back;
Graphics::TBitmap *plane;
Graphics::TBitmap *man;
Graphics::TBitmap *ground;
int x,y;
int x1,y1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
back = new Graphics::TBitmap; //Загрузка в память изображения
back->LoadFromFile("sky.bmp");
plane = new Graphics::TBitmap;
plane->LoadFromFile("plane.bmp");
plane->Transparent = true; //Делает прозрачным белое поле вокруг изображения
man = new Graphics::TBitmap;
man->LoadFromFile("man.bmp");
man->Transparent = true;
ground = new Graphics::TBitmap;
ground->LoadFromFile("ground.bmp");
ground->Transparent = true;
Image1->ClientHeight = back->Height;
Image1->ClientWidth = back->Width;
Form1->ClientWidth = back->Width;
Form1->ClientHeight = back->Height;
x = -60;
y = 30;
x1 = -60;
y1 = 60;
Timer1->Interval = 24; //Задание интервала сброса таймера
Timer1->Enabled = true; //Включение таймера
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if ((!back->Empty) && (!plane->Empty ) ){ //Первоначальная прорисовка
Canvas->Draw(0,0,back);
Canvas->Draw(x,y,plane);
Canvas->Draw(0,0,back);
Canvas->Draw(250,180,man);
}
else {
Canvas->TextOut(10, 10, "Ошибка загрузки битовых образов");
}
TRect r; //Определение переменной типа TRect
r = Rect(x, y, x+plane->Width, y+plane->Height); //Задание координат прямоугольника
Canvas->CopyRect(r, back->Canvas, r); //Перенос образ изображения на канву
x = x+1; //Изменение координаты
Canvas->Draw(x, y, plane); //Прорисовка самолета
if ( x > Form1->Width + plane->Width + 10) //проверка выхода за границы области
{
x = -60;
}
r = Rect(x1, y1, x1+plane->Width, y1+plane->Height);
Canvas->CopyRect(r, back->Canvas, r);
x1 = x1+ 2;
Canvas->Draw(x1, y1, plane);
if ( x1 > Form1->Width + plane->Width + 10)
{
x1 = -60;
}
}
//---------------------------------------------------------------------------
Вывод: Мы научились получать подобие анимации.
Достарыңызбен бөлісу: