"Эверест" - Центр Практической Информатики

представляет вводный курс

"Delphi для чайников"

Урок 15. Игра "Поймай кнопку".

 

Знакомство с компонентом Таймер.


Все компоненты, которые мы использовали ранее в своих программах, были визуальные. Что это значит? А то, что любой компонент, который мы помещали на форму, был виден и выполнял какую-либо видимую роль.

Однако, есть еще и компоненты, которые выполняют свою работу не будучи видными для постороннего глаза. Одним из таких компонентов является Таймер. В его задачу входит обрабатывать какое-либо сообщение через определенные интервалы времени.

Хотя этот компонент и невидим в процессе работы программы, у него тоже есть свои события и свойства. Вернее, событие одно- OnTimer, которое определяет, что должна делать программа, когда истечет заданный интервал.

Самое важное свойство таймера - Interval (Интервал). Оно указывает, когда (через сколько времени) в следующий раз таймер должен сработать. Промежуток времени задается в тысячных долях секунды - миллисекундах. По умолчанию, свойство Interval содержит число 1000, следовательно, таймер будет срабатывать каждую секунду.

Ну, довольно теории. Перейдем к практике.


1. Откройте Delphi или создайте новый проект.


2. Поместите на форму компонент Таймер. Он находится на панели компонентов System (Системные) и имеет вид:

Таймер можно расположить где угодно на форме. Этот объект отображается на форме в виде значка фиксированного размера. В окне работающей программы его не видно.

3. На форму поместите кнопку - компонент Button.

4. Давайте сделаем так, чтобы через каждые пол-секунды кнопка прыгала куда-нибудь. А задача пользователя- ее поймать. Свойство Interval сделайте равным 500.

5. Дважды щелкните по значку Timer, чтобы открыть обработчик события. Начинаем писать код:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
randomize; // включаем генератор случайных чисел
button1.Left:= random (Form1.Width- 100); // кнопка может прыгать по всей длине формы
button1.Top:= random (Form1.Height-60); // кнопка может прыгать по всей ширине формы
end;


Когда нужно закончить игру? Когда пользователь щелкнет по кнопке. То есть для кнопки произойдет событие OnClick. Его и будем программировать.

6. Щелкните 2 раза по кнопке Button1, чтобы создать процедуру обработки щелчка.
7. Введите следующий код:

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:= false; // Останавливаем таймер
Form1.Caption:='Победа!';
Button1.Caption:='Ура!';

end;

Вы не поверите, но скелет программы готов. Осталось выполнить мелкие доработки. Например, добавить кнопку Выход, сделать кнопку Медленнее и кнопку Быстрее, при нажатии на которую увеличивается или уменьшается интервал таймера.

Вот данная программа в процессе игры. Эту игру создал один из наших курсантов - ученик 8-го класса.

Скачайте ее с нашего сайта...и ...

Самостоятельно сделайте подобную игру. Всей информацией для этого Вы обладаете.

На этом скелете можно строить кучу различных игр. Кстати, многие из них представлены в широчайшем множестве в Интернете…

Вот один из клонов данной игры: Спасите утопающего:

 

Примечание : Обращаю ваше внимание на то, что данный курс ознакомительный. Если Вы желаете действительно научиться программированию и получить в руки мощный инструмент для профессиональной работы, то приглашаем Вас на наш основной курс по Delphi.

Вся информация находится по адресу: http://umnik.rikt.ru/everest/distant/delphi_os.htm

Учиться у нас выгодно. Не верите?

Посмотреть архив данной рассылки Вы сможете на нашем сайте по адресу: http://umnik.rikt.ru/projectgame/learn.html


ШСД поможет вам открыть Свое Дело!      

 

Rambler's Top100  
  Союз образовательных сайтов     InterSib Каталог ресурсов Сибири