Анимация на языке программирования Delphi 7
Введениe
Появление Delphi
тесно связанно с возникновением языка программирования Pascal.
Который был разработан в 60-х годах прошлого века профессором Цюрихского
университета Николосом Виртом, как учебный язык для студентов. Позднее, в 1983
году, один из учеников Вирта создал компанию Borland,
и под его руководством Pascal
превратился в мощное средство разработки программ.
Данная программа написана в среде Delphi.
Среда программирования Delphi в настоящее время является одной из самых
развитых систем визуального объектно-ориентированного программирования. Её
возможности отвечают высоким требованиям и подходят для создания приложений
любой сложности. Структурированность и простота Delphi делает его одним из
совершенных языков программирования. На нем можно создать все, что делают на
С++ избежав всех имеющихся в нем трудностей. Он позволяет с наименьшими
усилиями создавать от простых приложений работающих на одном компьютере до
корпоративных приложений, использующие серверные базы данных, расположенные на
разных платформах. На Delphi возможно создать интернет приложения, коммерческие
игры, утилиты и много других видов программ.
1. Блок-схема алгоритма работы программы
Блок-схема запуска главного таймера (рисунок 1).
Рисунок 1-Запуск анимации.
Основная логика программы ( рисунок 2).
Рисунок 2-Логика программы.
Рисунок 2-Логика программы (продолжение).
2. Компоненты программы
Запускаем программу. Видим форму, на которой
расположены компоненты. Image1(1),
image2(2), timer(3),
mainmenu1(4), mediaplayer1(5).
Рисунок 3- Рабочая область.
Использованные свойства и события:
Form1 (главная
форма программы, на ней расположены все компоненты):
- Свойство
DefaultMonitor - dmDesktop(
расширение монитора);
- Свойство
Menu - MainMenu1(присваивание
компонентов);
- Событие
OnCreate (отвечает за
порядок событий);
4. MainMenu1
(панель, на которой расположены кнопки управления):
- Свойство
Items (определяет
элементы подменю);
1. Image1
(фон):
- Свойство
Align - alClient
(растягивает на всю длину);
- Свойство
Picture (указывает на
хранящийся файл) ;
- Свойство
Stretch (определяет
размеры файла);
2.Image2
(колобок):
- Свойство
Left (сдвигает левый
край элемента);
- Свойство
Picture (указывает на
хранящийся файл);
- Свойство
Stretch (определяет,
изменяет ли размеры файл);
- Свойство
Top (определяет
смещение по вертикали);
- Свойство
Transparent (определяет
прозрачность элемента);
5.MediaPlayer1
(универсальный проигрыватель аудио- и видео-информации):
- Свойство
EnabledButton (указывает
выбранную кнопку);
- Свойство
FileName (хранит объект
воспроизведения в файле);
- Свойство
Visible
(видимость);
3.Timer
(не визуальный компонент, который может размещаться в любом месте формы.
Позволяет задавать интервалы времени):
- Свойство
Interval (интервал времени
в миллисекундах);
- Свойство
Enabled (доступность);
- Событие
OnTimer (отключает
таймеры);
При запуске программы появляется рабочая область.
Чтобы запустить анимацию необходимо нажать
"Запуск".
Для паузы и остановки соответственно
"Пауза" и "Стоп" (рисунок 4).
программирование delphi анимация
таймер
Рисунок 4 - Кнопки управления.
Запуск программы (рисунок 5).
Рисунок 5-Запуск.
При запуске анимации объект начинает движение
(рисунок 6).
Рисунок 6- Анимация.
В конечном итоге объект падает в яму и исчезает
(рисунок 7).
Рисунок 7 - Окончание действия.
Для того, чтобы вернуть объект в исходное
положение необходимо нажать "Стоп".
. Листинг программы
Unit1;
interface
uses, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,, ExtCtrls, Menus, jpeg, MPlayer;
type= class(TForm): TImage;:
TImage;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TTimer;:
TMediaPlayer;: TTimer;: TTimer;: TTimer;Timer1Timer(Sender:
TObject);N1Click(Sender: TObject);N2Click(Sender: TObject);Timer2Timer(Sender:
TObject);Timer3Timer(Sender: TObject);N3Click(Sender:
TObject);FormCreate(Sender: TObject);Image2DblClick(Sender:
TObject);Timer4Timer(Sender: TObject);
{ Private declarations }
{ Public declarations };:
TForm1;:array[1..100] of string;:integer;
{$R *.dfm}TForm1.Timer1Timer(Sender:
TObject); // часть кода, которая отвечает за звуки
if image2.top=256 then
begin.FileName:='oi2.wav';.Open;.Play;image2.Left=78 then
begin.FileName:='smeh2.wav';.Open;.Play;;
// конец кода звуков
{
// это с прыжком, убираются фигурные скобки
здесь и перед комментарием конца прыжка
image2.Left:=image2.Left-1;image2.Left=424
then.Enabled:=truebeginimage2.Top=168 then.Enabled:=true;;
// конец
кода
прыжка
// начало кода падения
if
image2.Left=368
then begin
// если колобок добрался до ямы, то он падает
image2.Top:=image2.Top+3;image2.Top=256
then // если
колобок
упал
в
яму,
то
он
исчезает
image2.Visible:=false;// иначе
продолжает
катиться.Left:=image2.Left-1;
// конец
падения
// эта строка отвечает за исчезновение колобка,
когда он добирается до двери
if image2.Left=78 then
image2.Visible:=false;;TForm1.N1Click(Sender: TObject);
timer1.Enabled:=true;
// эта строка отвечает за всю анимацию
timer4.Enabled:=true;;TForm1.N2Click(Sender:
TObject); // эта процедура
нужна
для
"паузы"
// ниже включаем все таймеры
timer1.Enabled:=false;
timer2.Enabled:=false;.Enabled:=false;.Enabled:=false;;TForm1.Timer2Timer(Sender:
TObject); //эта процедура
включает
второй
таймер,
который
отвечает
за
движение
вверх
во
время
прыжка
if
image2.top=168
then //если колобок
допрыгнул достаточно высоко, то выключаем таймер
timer2.Enabled:=falsebegin // иначе
прыгаем
выше.Top:=image2.Top-2;.Left:=image2.Left-2;
// увеличивает
в
два
раза
координату
оси
Ох
image2.top=168
then // дублирование
первого условия для того, чтобы остановить таймер на высшей точке прыжка
timer2.Enabled:=false;;;
TForm1.Timer3Timer(Sender:
TObject); // процедура
таймера , в котором прописано опускание колобка на землю после прыжка
beginimage2.Top=208
then.Enabled:=falsebegin.Top:=image2.Top+2;.Left:=image2.Left-2;;;
procedure
TForm1.N3Click(Sender:
TObject); // процедура
возвращения колобка в исходное положение и отключение таймеров
begin.Top:=208;.Left:=600;.Enabled:=false;.Enabled:=false;.Enabled:=false;.Enabled:=false;2.Visible:=true;
// колобок становится виден
image2.Picture.LoadFromFile('kolob.bmp');;TForm1.FormCreate(Sender:
TObject);
doublebuffered:=true;
// включает двойную буфферизацию для удаления эффекта мерцания
i:=1;[1]:='kolob.bmp';[2]:='kolob2.bmp';[3]:='kolob3.bmp';[4]:='kolob4.bmp';[5]:='kolob5.bmp';[6]:='kolob6.bmp';[7]:='kolob7.bmp';[8]:='kolob8.bmp';;TForm1.Image2DblClick(Sender:
TObject);.Hint:=inttostr(image2.left);;TForm1.Timer4Timer(Sender: TObject); // отвечает
за
вращение
колобка.Picture.LoadFromFile(rot[i]);:=i+1;i=8
then i:=1;;.
4. Используемые файлы
Project2.exe
- выполняемый файл
Project2.dpr
- файл проекта
Project2.cfg
- файл конфигурации
Project2.dof
- файл опций проекта
Project2.res
- файл ресурсов
Unit1.dfm
- файл формы 1
Unit1.pas
- файл отдельного модуля (Unit
1)
Unit1.dcu
- результат компиляции pas(Unit1)
Заключение
В данной работе я показала анимацию. Она
состояла в том, чтобы объект (колобок), не доходя до домика, упал.
Благодаря этой работе, я научилась работать с
графикой. А также освоила язык программирования Delphi.
Список литературы
1. "Программирование
в Delphi 7", Архангельский А. Я., "Бином-Пресс", 2003 г.
2. "Технологии
Delphi", Бобровский С., "Аст-Пресс", г. Москва, 2007г.
3. http://www.rsdn.ru/article/Delphi/Delphi_7_02.xml