"Эверест" - Центр Практической
Информатики представляет вводный курс "Delphi для чайников" Урок 19. Игра "Ипподром".
Сегодня мы создадим игру, которая уже будет похожа на настоящую тем, что в ней будет использована графика и она будет динамическая. Мы создадим компьютерный вариант скачек. Свой ипподром, но не лошадиный, а морской. И назовем соответственно: "Морской ипподром". Почему морской? Ну, нравиться мне море. ВЫ же вольны сделать что-либо свое…Не забывайте, что Вы- бог для своего компьютера и своей программы, так же как и я для своей. Итак, что из себя представляет игра? На игровом поле находится 5 фишек (аналоги лошадей). По команде фишки начинают двигаться по прямой на определенное количество точек. Побеждает та, которая придет к финишу первой. Вот и все. При разработке подобных программ разработчики используют массивы
и циклы. Мы же этого не знаем, а создать что-нибудь приличное уже хочется…
Предварительная подготовка: 1. Скачайте с нашего сайта рисунки к игре: файл- forhip.rar Расставляем компоненты. 3. Откройте Delphi.
..
9. На форму поместите компонент Panel.
А на нее следующие компоненты: Приступаем к программированию. Что будет делать программа? При нажатии на кнопку Старт, лодки начинают двигаться слева направо. Та, которая первая достигнет отметки 600 пикселов, будет победителем. Управляет движением лодок таймер. Его и начнем программировать. 10. Сделайте двойной щелчок по таймеру. Откроется процедура обработки события: procedure TForm1.Timer1Timer(Sender: TObject); end;
Эти операторы дадут нам видимость движения, а случайный выбор- видимость соревнования. 12. Интервал срабатывания таймера поставьте равный 50. Было бы очень просто написать: if bitbtn1.Left> 600 then Timer1.Tnabled:=false.
Воспользуемся свойством Tag, который есть у всех компонентов, следовательно, у BitBtn тоже. Это свойство Delphi не нужно, сделано оно специально для программистов. Хранить в нем можно любое целое число. По умолчанию, это свойство равно 0 для всех компонентов. Мы же будем хранить в этом свойстве место, занятое лодкой. 15. Еще раз двойной щелчок по таймеру. Добавьте следующие строки: if bitbtn1.Left> 600 then 16. Разберитесь с этим куском кода, здесь должно быть все понятно. Далее аналогично: if bitbtn2.Left> 600 then if bitbtn3.Left> 600 then if bitbtn4.Left> 600 then if bitbtn5.Left> 600 then
18. Не забудьте зарегистрировать переменную n, как тип Integer. implementation {$R *.DFM} 19. Проверьте, работают ли кнопки так, как надо. Выскакивает ли надпись 'Вы победили!', если угадан победитель. Появляются ли места, занятые участниками гонки? Мне не нравится то, что гонка начинается как только произошла загрузка формы. Это не есть хорошо. Поэтому вначале игры таймер должен быть отключен. 20. В инспекторе объектов Таймера выберите свойство Enabled:=
False. procedure TForm1.Button1Click(Sender: TObject); 22. Далее все просто. Или, как говорят математики, тривиально. Наводим красоту, кое-что до поры до времени прячем, кое-что отключаем. И игра готова.
Все рисунки к этой игре Вы можете взять с нашего сайта: http://umnik.rikt.ru/everest/distant/delphi.htm Скачать игру можно с нашего сайта.. http://umnik.rikt.ru/projectgame/learn.html На следующем уроке: Превратим игру в тотализатор… Автор рассылки: Ишмуратов Р.К, e-mail: rk@rikt.ru P.S. Обращаю ваше внимание на то, что данный курс ознакомительный. Если Вы желаете действительно научиться программированию и получить в руки мощный инструмент для профессиональной работы, то приглашаем Вас на наш основной курс по Delphi. Вся информация находится по адресу: http://umnik.rikt.ru/everest/distant/delphi_os.htm Учиться у нас выгодно. Не верите? Посмотреть архив данной рассылки Вы сможете на нашем сайте по адресу: http://umnik.rikt.ru/projectgame/learn.html
|