51346

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

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

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

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

Русский

2014-02-09

73.5 KB

80 чел.

Лабораторная работа 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;

 }

}

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

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


 

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

36753. Сведения о некоторых командах ОС UNIX 121.5 KB
  Команды поступающие от пользователей называют заданиями чтобы отличить их от системных процессов. Перевод процесса в фоновый режим Если вы запускаете какойто процесс путем запуска программы из командной строки то обычно процесс запускается как говорят на переднем плане . Это значит что процесс привязывается к терминалу с которого он запущен воспринимая ввод с этого терминала и осуществляя на него вывод.
36754. Форматирование таблиц 309 KB
  Вставка таблицы с помощью панели инструментов Рис. Окно Вставка таблицы Вы сами можете выбрать каким способом создавать таблицу: при помощи меню ТаблицаДобавить таблицу. указав в соответствующих полях ввода число строк и столбцов создаваемой таблицы или можно воспользоваться соответствующей кнопкой Добавить таблицу панели инструментов Нажав кнопку выделите не отпуская клавиши мыши нужное число ячеек в раскрывающемся поле рис. Первый способ создания таблицы удобно использовать если размеры таблицы превышают 5 столбцов...
36756. Определение главного фокусного расстояния тонких линз 212.5 KB
  Приборы и принадлежности: оптическая скамья с набором рейтеров осветитель с источником питания экран собирающая и рассеивающая линзы. Ее вершины и в этом случае можно считать совпадающими в точке называемой оптическим центром линзы. Причем ось проходящая через оптический центр линзы и центры кривизны ее преломляющих поверхностей называется главной оптической осью линзы. Если направить луч света параллельно главной оптической оси вблизи нее то преломившись он пройдет через точки или в зависимости от того слева или...
36757. Получение и исследование света с различными состояниями поляризации 230.5 KB
  Цель работы: изучить методы получения и анализа света с различными состояниями поляризации, сформулировать гипотезу исследования, установить связи между основными способами получения поляризованного излучения, выделить существующие различия между ними, определить этапы исследования.
36758. Определение постоянного Планка спектрометрическим методом 115.5 KB
  Цель работы: сформулировать гипотезу исследования по уровням сложности, проанализировать метод исследования спектра, исследовать спектр излучения атома водорода в видимой области спектра (серия Бальмера), определить постоянные Ридберга и Планка, объяснить методику их определения, выяснить, как соотносится сплошной и линейчатый спектры атома водорода.
36759. Система дистанционной поддержки в вузе (на примере центра дистанционной поддержки обучения РГПУ им. А. И. Герцена) 43.5 KB
  Сколько метакурсов предлагается в данном разделе Какие значки используются для обозначения метакурсов которые можно посетить: а без кодового слова б только по кодовому слову Откройте метакурс Демонстрация возможностей Moodle. Перечислите модули метакурса Демонстрация возможностей Moodle. Задание №3 Порядок выполнения: Выберите модуль Основные возможности метакурса Демонстрация возможностей Moodle.
36760. Создание «интерфейса пользователя» в среде Scada- системы «Genesis 32» 145 KB
  Ознакомиться с современными направления промышленной автоматизации на базе сетевых технологий с использованием Scd систем что может Scdсистема и ОРСтехнологий. Ознакомиться со Scd системой GENESIS 32 3. Отработать навыки использования современных программноаппаратных средств при построении распределенных информационных систем Общие сведения Scd системы – задачи функции см.
36761. Конфигурация глобальной среды. Активизация механизма SSI 46.5 KB
  conf и пропишите в нем директиву которая будет задавать каталог где будут храниться webстраницы сервера: DocumentRoot vr www ваша_фамилия html Сохраните изменения и выйдите из редактора nno. В каталоге где должны храниться webстраницы сервера vr www ваша_фамилия html создайте файл с именем index.html следующего содержания на месте многоточия подставьте свои фамилию и имя: html hed title My web pge title hed body My nme is h1 My web server is working h1 body html Для создания файла введите nno имя_файла...