Практическое занятие №33

Наименование: Создание простейшей анимации

 

1.ЦЕЛЬ РАБОТЫ:

Научится создавать простейшую анимацию при программирование в Delphi. Сформировать компетенции ОК 4, ОК 6; овладеть знаниями и умениями для освоения ПК 1.4, ПК 3.1.

 

2.ПОДГОТОВКА К ЗАНЯТИЮ:

2.1. Изучить предложенную литературу.

2.2. Подготовить бланк отчёта.

3.ЛИТЕРАТУРА:

3. 1 Игнатов А.С. Основы программирования. Учебное пособие, КС ПГУТИ, 2017

3.2 Белов В.В., Чистякова В.И. Программирование в Delphi: процедурное, объектно-ориентированное, визуальное. Учебное пособие. – М.: Горячая линия – Телеком, 2014

 

4. ПЕРЕЧЕНЬ ОБОРУДОВАНИЯ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:          
4.1. Персональный IBM PC.

5.ЗАДАНИЕ:

5.1 Выполнить задачу из приложения.

5.2 Модифицировать разработанное приложение: добавить еще один «летательный» объект, скорость и направление движения объектов должна быть различна. Программа должна добавлять баллы при попадании в любой из объектов. Оба объекта могут сбрасывать «бомбы»

 5.3 Разработать игру «Клавиатурный тренажер», который работает следующим образом:

· сверху вниз «падает» буква(метка с одной буквой, код буквы -случайное число от 192 до 223). Если буква «упала», то сверху начинает падать другая буква;

· игрок должен нажать соответствующую клавишу на клавиатуре;

· программа должна регистрировать количество ошибок (клавиша нажата неверно или буква «упала» и кнопка не была нажата);

· если количество ошибок превысит 10, то игрок проиграл.

5.4 Расположить на форме таймер, фигуру «круг» и фигуру «прямоугольник». Разработать приложение, которое работает следующим образом:

· прямоугольник выполняет роль лапты, он перемещается влево и вправо при нажатии клавиш. ®  

· круг - это мячик, который постоянно прямолинейно двигается, при столкновении с границами формы или лаптой меняет свое направление на противоположное.

6. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

6.1 По предложенной литературе изучить необходимый материал;

6.2 Выполнить задания;

6.3 Оформить отчет;

7. СОДЕРЖАНИЕ ОТЧЕТА:

7.1 Наименование и цель работы

7.2 Записать результат (листинг) выполненных заданий.

7.3 Ответы на контрольные вопросы

7.4 Вывод о проделанной работе

 

8. КОНТРОЛЬНЫЕ ВОПРОСЫ:

8.1. В каких случаях используется таймер? Что определяет свойство Interval?

8.2   Как остановить работу таймера?

8.3 Как определить код нажатой клавиши?

8.4 На какие события реагирует компонент Shape?

ПРИЛОЖЕНИE:

 

Постановка задачи:

В верхней части окна приложения непрерывно движется объект «Противник». В нижней части окна – объект «Охотник», который может перемещаться влево и вправо, а также стрелять в «Противника» вверх пулей. При попадании пули в «Противника» объект «Охотник» увеличивает свои баллы. Цель может быть опасна, т.к. сбрасывает объект «Бомбочки», которые при попадании в охотника уменьшают его баллы.

В начале игры у «Охотника» 10 баллов. Игра заканчивается победой, если «Охотник» удваивает баллы, и поражением, если баллы равны нулю.

Порядок выполнения:

 

  1. Создать и сохранить новый проект.
  2. Разместить на форме два компонента Image (Additional), задайте для них имена, например: Men (охотник), Samolet (цель), и измените свойство Picture для каждого (выбрать графический файл. ico).
  3. Разместить компонент Shape, задать имя Pula (пуля).
  4. Установить два таймера (System). Timer1 отвечает за непрерывное движение цели. Timer2  за движение объекта пули. Рекомендуемый вид формы приведен на рисунке.

 

 

  1. Для объекта Timer1 ввести следующий код:

samolet.Left:=samolet.Left +1;

If samolet.Left >300 Then samolet.Left:=-30;

  1. Проверить работу программы. Самостоятельно отрегулировать скорость движения объекта, изменяя значения свойства Interval для таймера.

 

  1. Для формы выбрать событие OnKeyDown и введите код:

If key=37 then men.Left:=men.Left-10;//влево

If key=39 then men.Left:=men.Left+10;//вправо

 If key=32 then     //нажат пробел

Begin

pula.Visible:=true;

pula.Left:=men.Left;

pula.Top:=men.Top-pula.Height;

timer2.interval:=10;

End;

  1. Для объекта Pula изменить свойство Visible на False. Для объекта Timer2 изменить свойства Interval =0
  2. Для объекта Timer2 введите код:

pula.Top:=pula.Top-5;

If pula.top<0 then

Begin

timer2.Interval:=0;

pula.Visible:=false;

End;

  1. Проверить работу программы, отрегулировать скорость движения «пули».
  2. Добавить метку (имя Result) для вывода количества баллов.
  3. В процедуру для Timer2 добавить код (выделен полужирным шрифтом) для проверки на попадание «пули» в «самолет»:


Var

x,y,h,w:integer;// координаты и размеры пули

x0,y0,h0,w0:integer; // координаты и размеры самолета

begin

pula.Top:=pula.Top-5;

If pula.top<0 then

Begin

timer2.Interval:=0;

pula.Visible:=false;

End;

x:=pula.left; y:=pula.Top;

w:=pula.Width; h:=pula.Height;

x0:=samolet.Left; y0:=samolet.Top;

w0:=samolet.Width;h0:=samolet.Height;

if (x+w>x0) and (x<x0+w0) and (y+h>y0) and (y<y0+h0) then

result.Caption:=inttostr(strtoInt(result.Caption)+1);

end;

  1. Проверить работы программы. Определить, почему баллы начисляются неверно. Внести изменения в процедуру для того, чтобы за одно попадание добавлялся один балл.
  2. Добавить на форму компонент Shape (имя Bomba, Visible False, измените размер и цвет Brush / Color) и еще один таймер Timer3 (Intarval =10).
  3. Для таймера ввести следующий код:

If Bomba.Visible =False Then

Begin

Bomba.Visible:=True;

Bomba.Left:=Samolet.Left+5;

Bomba.Top:=Samolet.Top+5;

End

Else

Begin

Bomba.Top:=Bomba.Top+1;

If Bomba.top>men.Top+30 Then Bomba.Visible:=False;

End;

  1. Проверить работу программы. Самостоятельно внести изменения в процедуру для того, чтобы баллы уменьшались при попадании в «охотника».
  2. Самостоятельно добавить проверку на окончание игры.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: