Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Практическая работа № 3




 

Тема: Программированиесобытий KeyPress, KeyDown,KeyUp.

Цель работы: Получить навыки создания процедур обработки событий, связанных с клавиатурой. Получить навыки использования объектов Image, Shape и Timer.

Пояснения к работе:

Приложение Delphi реагирует на события – сигнал от мыши, клавиатуры и системные события. Различные объекты могут реагировать на различные совокупности событий. При организации реакции на события можно:

· проигнорировать событие, т.е. не писать процедуру для реакции на это событие;

· перехватить событие, для этого нужно написать текст процедуры – обработчика события.

Имя процедуры - обработчика события состоит из имени объекта, на котором произошло событие и имении события. Все события в Delphi принято именовать с префиксом ‘On’. События различны, но общим для них является параметр Sender – отправитель, он указывает на источник события. Традиционно может быть предусмотрена реакция на 3 вида событий от пользователя: нажатие или отпускание любой из кнопок мыши (MouseUp,MouseDown), перемещение курсора (MouseMove) и нажатие клавиш (KeyUp, KeyDown, KeyPress).

Обработчику события передаются:

Sender источник сообщения;

Shift состояние специальных клавиш и кнопок мыши во время нажатия (отпускания);

Key код нажатой клавиши (для событий KeyUp, KeyDown), символ, соответствующий нажатой буквенно-цифровой клавише (событие KeyPress);

X,Y координаты положения курсора.

Компонент Image обеспечивает вывод на поверхность формы иллюстраций, представленных в bmp, jpg, ico, wmf-форматах.

 

Свойства Image:

Picture иллюстрация, которая отображается в поле компонента;

Width, Height размер компонента. Если размер компонента меньше размера иллюстрации, и значение свойств AutoSize, Strech, Proportional, равно False, то отображается часть иллюстрации;

Proportiona l признак автоматического масштабировании картинки без искажения. Чтобы масштабирование было выполнено, значение свойства AutoSize должно быть False;

Strech признак автоматического масштабировании (сжатия или растяжения) иллюстрации в соответствии с реальным размером компонента. Если размер компонента непропорционален размеру иллюстрации, то она будет искажена.

AutoSize признак автоматического изменения размера компонента в соответствии с реальным размером иллюстрации;

Center признак определяет расположение картинки в поле компонента, если ширина картинки меньше ширины поля компонента. Если значение False, то картинка прижата к правой границе, если True то по центру.

Компонент Timer обеспечивает генерацию последовательности событий OnTimer.

Свойства Timer:

Interval период генерации событияOnTimer, задается в миллисекундах;

Enabled разрешение работы.разрешает (значение true) или запрещает (значение false) генерацию событий OnTimer

 

Компонент Shape предназначен для рисования фигур.

Свойства Shape:

Shape определяет тип фигуры;

Brush определяет стиль и цвет заполнения фигуры;

Pen определяет стиль, цвет и толщину границ фигуры.

 


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

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

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

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

 

  1. Создать и сохранить новый проект.
  2. Разместить на форме два компонента Image (Additional), задайте для них имена, например: Men (охотник), Samolet (цель), и измените свойство Picture для каждого (выбрать графический файл. ico).
  3. Разместить компонент Shape, задать имя Pula (пуля).
  4. Установить два таймера (System). Timer1 отвечает за непрерывное движение цели. Timer2 за движение объекта пули. Рекомендуемый вид формы приведен на рисунке.
  5. Для объекта 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 добавить код (выделен полужирным шрифтом) для проверки на попадание «пули» в «самолет»:



Поделиться с друзьями:


Дата добавления: 2014-10-23; Просмотров: 557; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.