51346

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

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

Информатика, кибернетика и программирование

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

Русский

2014-02-09

73.5 KB

101 чел.

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

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

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

 ФРТ, гр. 2106

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

Общий вид программы следующий:

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

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

#include <vcl.h>

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

 }

}

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

Вывод: Мы научились получать подобие анимации.


 

А также другие работы, которые могут Вас заинтересовать

13438. Повірка чи калібрування приладів прямої дії 102.5 KB
  Лабораторна робота 2 Повірка чи калібрування приладів прямої дії Мета роботи: вивчити теоретичні та практичні основи повірки чи калібрування приладів прямої дії на прикладі калібрування амперметра та вольтметра зіставленням їх показів із показами робочих еталонів.
13439. ВИМІРЮВАННЯ ПОСТІЙНИХ СТРУМІВ ТА НАПРУГ 160 KB
  ЛАБОРАТОРНА РОБОТА 3 ВИМІРЮВАННЯ ПОСТІЙНИХ СТРУМІВ ТА НАПРУГ Мета роботи: Навчитись: вимірювати постійні струми та напруги електромеханічними приладами; раціонально обирати межу вимірювання та клас точності стрілкового приладу для вимірювання заданої з допустим
13440. ВИМІРЮВАННЯ СТРУМІВ, НАПРУГ ТА ПАРАМЕТРІВ ЕЛЕКТРИЧНИХ ЛАНЦЮГІВ КОМБІНОВАНИМИ ПРИЛАДАМИ (ТЕСТЕРАМИ) 2.84 MB
  ЛАБОРАТОРНА РОБОТА 4 ВИМІРЮВАННЯ СТРУМІВ НАПРУГ ТА ПАРАМЕТРІВ ЕЛЕКТРИЧНИХ ЛАНЦЮГІВ КОМБІНОВАНИМИ ПРИЛАДАМИ ТЕСТЕРАМИ Мета роботи: вивчити принцип дії будову та властивості комбінованих приладів КП здобути навички вимірювань і перевірки справності елементів ...
13441. Деякі особливості використання вольтметрів змінного струму 237.5 KB
  ЛАБОРАТОРНА РАБОТА № 5 Деякі особливості використання вольтметрів змінного струму Мета роботи : Опрацювати опис даної роботи та відповідні розділи рекомендованої літератури [1] [2] [3] [5]. 2. Уміти відповідати на наступні запитання: 1. Поясніть будову та принцип д
13442. ДОСЛІДЖЕННЯ ВИМІРЮВАЛЬНИХ МОСТІВ ПОСТІЙНОГО СТРУМУ 131.5 KB
  Лабораторна робота № 6 ДОСЛІДЖЕННЯ ВИМІРЮВАЛЬНИХ МОСТІВ ПОСТІЙНОГО СТРУМУ Мета роботи: вивчити основи теорії схеми та будову врівноважених мостів постійного струму дослідити властивості врівноважених мостів здобути навички вимірювань за допомогою мостів. При пі...
13443. НЕВРІВНОВАЖЕНИЙ ВИМІРЮВАЛЬНИЙ МІСТ ПОСТІЙНОГО СТРУМУ 118.5 KB
  ЛАБОРАТОРНА РОБОТА 7 НЕВРІВНОВАЖЕНИЙ ВИМІРЮВАЛЬНИЙ МІСТ ПОСТІЙНОГО СТРУМУ Мета роботи: вивчити принцип дії елементи теорії схеми властивості та особливості застосування неврівноважених вимірювальних мостів НМ постійного струму. При підготовці до виконання р...
13444. ДОСЛІДЖЕННЯ ВИМІРЮВАЛЬНИХ МОСТІВ ЗМІННОГО СТРУМУ 193.5 KB
  ЛАБОРАТОРНА РОБОТА N 8 ДОСЛІДЖЕННЯ ВИМІРЮВАЛЬНИХ МОСТІВ ЗМІННОГО СТРУМУ Мета роботи: вивчити основи теорії принцип дії схеми властивості і особливості експлуатації мостів змінного струму МЗС. Провести дослідження властивостей мостів змінного струму. При п...
13445. КОМПЕНСАТОР (ПОТЕНЦІОМЕТР) ПОСТІЙНОГО СТРУМУ 702 KB
  ЛАБОРАТОРНА РОБОТА 9 КОМПЕНСАТОР ПОТЕНЦІОМЕТР ПОСТІЙНОГО СТРУМУ Мета роботи: 1. Ознайомитись із принципом дії будовою та технічними особливостями компенсатора потенціометра постійного струму КПС. 2. Навчитись за допомогою КПС вимірювати електрорушійну силу ...
13446. Спостереження та вимірювання параметрів електричних сигналів за допомогою універсального Електронного Осцилографа 2.58 MB
  Лабораторна робота 10 Спостереження та вимірювання параметрів електричних сигналів за допомогою універсального Електронного Осцилографа. Мета роботи: вивчити структурну схему та принцип дії універсального електронного осцилографа ЕО; навчитись користувати