-
Основы Delphi
- Основы программирования на Delphi
- Компоненты Delphi. Начинаем писать свои первые приложения на Delphi
- Основные принципы программирования в Delphi. Начинаем программировать самостоятельно
- Delphi и Microsoft Word
- Delphi и Microsoft Excel
- Delphi и Microsoft Access
- Delphi и OpenOffice Writer
- Delphi и OpenOffice Calc
- Создание игр на Delphi
- Игра Пристрели птичку
Delphi и MSOffice
Delphi и OpenOffice
Delphi и Интернет
Delphi и игры
Delphi Android
Школа программирования Delphi
Портал DelphiSchool является бесплатным проектом, обеспечивающим пользователям быстрый и легкий доступ к урокам программирования на Delphi. Сайт позволяет научиться программировать на Делфи любому, кто хочеть писать свои программы, игры, Android приложения, программы для MAC OC или IOS. Кроме уроков Delphi и статей Delphi, на сайте доступны также и видеоуроки. Практически к каждому уроку, пользователю доступен исходник, изучив который, он сможет наглядно посмотреть как работает та или иная программа, написанная на Делфи. Кроме того мы постараемся прилагать к каждому материалу (статье, уроку, видеоуроку) файлы Delphi, которые будут помогать изучить предоставленный материал.
Каждый кто решил написать свою программу, создать свое приложение, научиться программировать и т.д., найдет на DelphiSchool статьи Delphi, уроки Delphi, видеоуроки Delphi, исходники Delphi, файлы Delphi, изучит компоненты Delphi, посмотрит Delphi примеры и многое другое абсолютно бесплатно. Все о Delphi программировании теперь собрано на одном сайте!!!
Главная » Уроки Delphi » Delphi и игры » Создание игр на Delphi |
В прошлом уроке Игра Пристрели птичку. Часть 3. Заставляем объект перемещаться по форме и считаем клики по объекту, мы написали первый код игры на Delphi и заставили наш объект передвигаться по форме, а также реализовали подсчет попаданий и промахов по объекту. Но этого нам мало и сейчас мы усложним игру, разработав новые уровни. При каждом новом уровне скорость передвижения птички будет увеличиваться. Итак, приступим. Открываем наш проект. Открываем в Менеджере проектов модуль ResultUnit, который мы создали в прошлом уроке. В этом модуле мы создали форму с надписями и тремя кнопками. Чтобы этот модуль мог взаимодействовать с модулем Unit1, его нужно подключить (File | Use Unit). Для формы (ResultForm) создадим обработчик события OnShow и напишем код: Код procedure TResultForm.FormShow(Sender: TObject); begin // заполняем таблицу результатов Label2.Caption:='Количество выстрелов: '+IntTostr(n+p); Label3.Caption:='Количество попаданий: '+IntTostr(p); Label4.Caption:='Количество промахов: '+IntTostr(n); // если есть 10 и больше попаданий, то можно переходить на следующий уровень if p>9 then begin inc(Level);//увеличиваем уровень на 1 TimeForShoot:=TimeForShoot-100;//уменьшаем интервал на 100 NextLevelButton.Enabled:=true; // делаем кнопку активной end; end; Эта форма, как мы помним, вызывается, когда заканчивается время (переменная t равна 0). Приведенным выше примером кода, мы заполняем нужные нам данные (количество попаданий, количество промахов), рассчитываем общее количество выстрелов, проверяем, если было 10 и более попаданий, то уровень игры (переменная Level) увеличивается на 1, интервал таймера (переменная TimeForShoot) уменьшается на 100 и кнопка NextLevelButton (Перейти на следующий уровень) становится активной. Если же выстрелов было меньше 10, то кнопка NextLevelButton (Перейти на следующий уровень) будет не активной, уровень игры и интервал не изменятся. Далее давайте создадим обработчик события OnClick для кнопки NextLevelButton (Перейти на следующий уровень) и напишем следующий код: Код procedure TResultForm.NextLevelButtonClick(Sender: TObject); begin MainForm.NextLevel(); // переходим к следующему уровню NextLevelButton.Enabled:=false; // делаем кнопку не активной Close;//закрываем форму end; Так мы вновь запускаем игру, но уже с новым уровнем игры и новой скоростью перемещения объекта по форме. Продолжим программирование и для кнопки CloseFormButton создадим обработчик события OnClick с кодом: Код procedure TResultForm.CloseFormButtonClick(Sender: TObject); begin Close; //закрываем окно end; Здесь все просто. Если игрок не желает, или не может перейти на следующий уровень, то он должен как-то закрыть форму результатов игры. Вот для этого мы и создали кнопку "Закрыть таблицу результатов" и вышеприведенный код. Ну и в завершение, давайте реализуем сохранение нашей игры. Для этого создадим обработчик события OnClick для кнопки SaveResultButton (Сохранить игру) и напишем следующее: Код procedure TResultForm.SaveResultButtonClick(Sender: TObject); begin // сохраняем в текстовый файл уровень игры try s := TStringList.Create; s.Add(IntToStr(Level)); s.Add(IntToStr(TimeForShoot)); s.SaveToFile('Level.txt'); s.Free; ShowMessage('Игра сохранена'); except ShowMessage('Не удалось сохранить игру'); end; end; Этим мы сохраняем в текстовый файл (Level.txt) номер уровня игры (переменная Level) и скорость перемещения объекта по форме (переменная TimeForShoot), для того чтобы потом загрузив их из текстового файла, продолжить игру с того уровня, который мы сохранили. Чтобы загрузить игру, мы создали в меню игры пункт меню "Загрузить игру". Давайте перейдем в модуль Uni1, создадим обработчик события OnClick для этого пункта меню и напишем следующий код: Код procedure TMainForm.N8Click(Sender: TObject); begin // загружаем из текстового файла уровень игры и интервал try s := TStringList.Create; s.LoadFromFile('Level.txt'); Level:=StrToInt(s.Strings[0]); TimeForShoot:=StrToInt(s.Strings[1]); s.Free; NextLevel(); except ShowMessage('Не удалось загрузить игру'); end; end; Теперь давайте реализуем возможность приостановить и возобновить игру, не выходя из нее. Для этого у нас есть в меню Игра пункты "Приостановить игру" и "Продолжить игру". Для пункта "Приостановить игру" пишем код: Код procedure TMainForm.N6Click(Sender: TObject); begin // Если игра не была запущена, то и останавливать ничего не нужно // Потому делаем условие if (StatusBar1.Panels[0].text<>'') and (t<>0)then begin Label1.Visible:=true; // выводим надпись о том что игра приостановлена RunGame:=false;// останавливаем игру end; end; а для пункта меню Игра "Продолжить игру" пишем: Код procedure TMainForm.N7Click(Sender: TObject); begin // Если игра не была запущена, то и продолжать ничего не нужно // Потому делаем условие if (StatusBar1.Panels[0].text<>'') and (t<>0)then begin Label1.Visible:=false; // убираем надпись о том что игра приостановлена RunGame:=true;// возобновляем игру end; end; Как видим, ничего сложного в этом коде нет. В комментариях я постарался все подробно описывать. Ну и в завершение нам осталось создать обработчик события OnClick для последнего пункта меню Игра "Выйти из игры". Код procedure TMainForm.N9Click(Sender: TObject); begin Close; end; Здесь у нас уже знакомый код закрытия формы. У нас еще остается меню Справка с пунктами "Информация" и "Правила игры", но описывать создание новых форм для этих двух пунктов меню я не считаю нужным. Вы уже должны уметь делать это самостоятельно. Вот так за несколько уроков мы создали игру Пристрели птичку. Код игры может быть и не оптимальный, и кто-то скажет, что можно сделать проще, но мы только учимся, а потому и реализовали идею таким образом. Надеюсь уроки вам помогли и теперь имеете некоторое представление о создании игр на Delphi. Рисунок. Игра Пристрели птичку. Окно Информация. К уроку (статье) Игра Пристрели птичку. Часть 4. Завершаем создание игры на Delphi прилагается исходник, посмотрев который, вы можете ознакомиться с полным исходным кодом программы и посмотреть как работает созданная программа. Исходный код сопровождается комментариями, благодаря чему вы сможете легко в нем разобраться. Но я настоятельно рекомендую делать все самостоятельно. Так вы лучше и быстрее усвоите то, о чем говорилось в этом уроке Для того чтобы получить возможность скачать исходник Delphi к этому уроку, необходимо посетить сайт рекламодателя. После этого, появится ссылка на исходник Delphi к уроку Игра Пристрели птичку. Часть 4. Завершаем создание игры на Delphi | |
Добавить Игра Пристрели птичку. Часть 4. Завершаем создание игры на Delphi в закладки: |
Диалоговые окна в Delphi. ShowMessage, MessageDlg, MessageDlgPos, InputBox и InputQuery |
Delphi и RadioGroup. Пример работы с группой компонентов RadioButton в Делфи |
Основы работы с MS Word. Создание, открытие, сохранение и закрытие документа Word с помощью Delphi |
Delphi и TButton. Учимся работать с кнопкой в Delphi. Часть 2. События кнопки |
Delphi и ComboBox. Пример работы с ниспадающими списками в Делфи |
Delphi и TEdit. Пример работы со строками ввода в Делфи |
Константы в Delphi. Объявление констант в Делфи |
Управление циклами в Delphi. Операторы Continue и Break. |
Delphi и CheckBox. Пример работы с CheckBox в Делфи |
Delphi и TPanel. Пример работы с панелями в Делфи |
Всего комментариев: 0 | |