Наименование: Создание простейшей анимации
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 баллов. Игра заканчивается победой, если «Охотник» удваивает баллы, и поражением, если баллы равны нулю.
Порядок выполнения:
- Создать и сохранить новый проект.
- Разместить на форме два компонента Image (Additional), задайте для них имена, например: Men (охотник), Samolet (цель), и измените свойство Picture для каждого (выбрать графический файл. ico).
- Разместить компонент Shape, задать имя Pula (пуля).
- Установить два таймера (System). Timer1 отвечает за непрерывное движение цели. Timer2 за движение объекта пули. Рекомендуемый вид формы приведен на рисунке.
- Для объекта Timer1 ввести следующий код:
samolet.Left:=samolet.Left +1;
If samolet.Left >300 Then samolet.Left:=-30;
- Проверить работу программы. Самостоятельно отрегулировать скорость движения объекта, изменяя значения свойства Interval для таймера.
- Для формы выбрать событие 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;
- Для объекта Pula изменить свойство Visible на False. Для объекта Timer2 изменить свойства Interval =0
- Для объекта Timer2 введите код:
pula.Top:=pula.Top-5;
If pula.top<0 then
Begin
timer2.Interval:=0;
pula.Visible:=false;
End;
- Проверить работу программы, отрегулировать скорость движения «пули».
- Добавить метку (имя Result) для вывода количества баллов.
- В процедуру для 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;
- Проверить работы программы. Определить, почему баллы начисляются неверно. Внести изменения в процедуру для того, чтобы за одно попадание добавлялся один балл.
- Добавить на форму компонент Shape (имя Bomba, Visible False, измените размер и цвет Brush / Color) и еще один таймер Timer3 (Intarval =10).
- Для таймера ввести следующий код:
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;
- Проверить работу программы. Самостоятельно внести изменения в процедуру для того, чтобы баллы уменьшались при попадании в «охотника».
- Самостоятельно добавить проверку на окончание игры.