Лабораторная работа 1 Анимация в C++ Builder



жүктеу 73,5 Kb.
Дата06.02.2022
өлшемі73,5 Kb.
#37380
түріЛабораторная работа
5fan ru Анимация в C Builder


Лабораторная работа 1

Анимация в C++ Builder

Выполнил: Шуклецов М.А.

ФРТ, гр. 2106


Цель работы: Написать программу, рисующую анимацию по заданному образцу.
Общий вид программы следующий:


Код программы:

//---------------------------------------------------------------------------


#include

#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;



}

}

//---------------------------------------------------------------------------


Вывод: Мы научились получать подобие анимации.
жүктеу 73,5 Kb.

Достарыңызбен бөлісу:




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау