Меню сайта
Форма входа

Категории раздела
Уроки по созданию игр [38]
Программирование игр разной сложности
Игровые алгоритмы [24]
Алгоритмы, которые уже реализованы для разных жанров игр
Графика [5]
Учимся работать с графикой в Делфи
Мультимедиа [3]
Работа с мультимедийными возможностями Делфи
Другие статьи [18]
Статьи не вошедшие не в один из разделов
Ошибки [4]
Всевозможные ошибки и пути их решения
Четверг, 09.01.2025, 07:07
Приветствую Вас Гость

Статьи по программированию

Главная » Статьи » Уроки по созданию игр

Как программировать (создавать) игры на Delphi?

Как программировать (создавать) игры на Delphi?

 

 

Наверное, каждый из пользователей ПК, а особенно программистов мечтали или мечтают создать свою компьютерную игру. И задаются вопросом: «Как научиться программировать игры». И почему-то каждый из нас, даже знающих программирование, не знает что нужно делать для того, чтобы программировать игры. Программистов этому не учат. И Программисты думают, что у них нет необходимых знаний. Но на самом деле игры строятся из элементарных вещей, которые на первый взгляд к играм не имеют отношения.

 

В сети Интернет бушует мнение, что среда Делфи не предназначена для создания игр. Или же предназначена для программирования небольших или неполноценных игр. Программисты-эксперты советуют разрабатывать игры на Си-подобных языках. По большому счету у каждого языка программирования свои свои недостатки и преимущества, а создавать игры (полноценные) можно на любом из них. Главное преимущество Delphi – простота синтаксиса языка, а значит и легкость в программировании. На Делфи можно создавать игры, часто, даже быстрее чем на других языках.

 

А вот главное преимущество Си-подобных языков заключается не в самом языке, а в количестве уже готовых наработок и библиотек на разные темы и разные случаи. Поэтому незачем изобретать велосипед – можно пользоваться готовым.

 

Но и База знаний и наработок Delphi постоянно растет, так что в наше время этот вопрос не насколько значим как раньше. Также не зная как реализовать тот или иной участок кода можно просто задать бесплатный вопрос программистам на форуме или специализированном сайте.

 

Уже существует огромное количество как видео так и текстовых уроков о том как программировать игры или же о том, как научиться программировать игры. И спрос по данной теме не падает, а это значит что имеющейся информации недостаточно. А значит и я на своем сайте попытаюсь убедить Вас программировать игры, но уже на языкеKylix, Lazarus, Delphi либо его более поздним версиям с названием Rad Studio. Все эти среды программирования используют один и тот же язык программирования Pascal. Поэтому Вы сможете программировать игры на любом из них одинаково.

 

С выходом RadStudio вообще появилась возможность создавать игры не только для операционной системы Windows, но и для Linux, MacOs, Android, Symbian, WindowsMobile, IOS  и других. Хотя можно скачать  просто необходимы компиелятор и с его помошью переделать игру под нужную операционную систему.

 

А теперь перейдем, непосредственно к самой разработки игр. Давайте разбираться как создавать (программировать игры) игры на Delphi. В данной статье мы попробуем разобраться с основами программирования любых жанров игр. Рассмотрим некоторые частные случаи в создании игр и многое другое.

 

Итак, первое, с чего обычно начинается создание игры – это разработка игрового мира. В большинстве случаев игровой мир – это просто массив (набор) клеточек, в которых хранятся номера картинок. Например в двумерной игре массив карты может выглядеть так:

 

Map:array[0..9,0..9]of integer;

 

Данный пример показывает, что игровая карта имеет размер 10х10. Клекти нумеруются от нуля до единицы как по оси Х, так и по оси (У) игрек. В трехмерных (3D) играх массив немного сложнее и выглоядит следующим образом:

 

Map:array[1..10,1..10,1..5]of integer;

 

Данный код демонстрирует, что игровой мир представляет из себя карту, размером 10 в ширину, 10 в длину и 5 в высоту.

 

В более сложных картах можно хранить дополнительный уровень, который будет отвечать за разные уровни карты. Например:

 

Map:array[1..10,1..10,1..4]of integer;

 

Массив трехмерный, но карта у нас двухмерная к примеру. Тогда выходит, что первые две цифры показывают размер карты, а третья показывает уровень карты. Можно условиться, что первый уровень хранит номера текстур земель (земля, вода, песок, глина), второй уровень хранит переходы между текстурами или же номера игровых обьектов (деревья, здания, города), третий уровень хранит временные обьекты (артефакты и предметы, которые можно подобрать или убрать), четвертый уровень – хранит монстров и персонажей на карте.

 

Например, если мы хотим проверить есть ли в ячейке с координатами [5,5] монстр, то это можно реализовать так:

 

If map[5,5]>0 then showmessage(‘монстр есть’)

ELSE showmessage(‘монстров нет’);

 

Далее, давайте разберемся как на графику загружать и выводить на экран или форму. Для начала – как же загружать игровые изображения в игру. Допустим у нас в папке с игрой лежит две картинки с именами 0.bmp и 1.bmp. Это картинки нулевой и первой текстуры для покрытия земли. Для того чтобы их загрузить можно сделать массив картинок для двух изображений.

 

Kartinki:array[0..1] of TBitmap;

 

Затем в цикле мы можем загрузить эти картинки. Делаем это так:

 

For i:=0 to 1 do

Begin

Kartinki[i]:=TBitmap.Create;

Kartinki[i].LoadFromFile(inttostr(i));

End;

 

Либо можно загрузить без цикла так:

 

Kartinki[0]:=TBitmap.Create;

Kartinki[0.LoadFromFile(‘0.bmp’);

Kartinki[1]:=TBitmap.Create;

Kartinki[1].LoadFromFile(‘1.bmp’);

 

Затем заполняем нашу игровую карту данными:

 

For i:=1 to 10 do

For j:=1 to 10 do

Map[I,j]:=0;

 

Мы заполнили всю карту нулевой текстурой. Ну а теперь давайте добавим парочку ячеек с первой текстурой для наглядности:

 

Map[1,1]:=1;

Map[4,2]:=1;

Map[3,8]:=1;

 

Теперь нужно по таймеру делать проверку какую текстуру рисовать на игровой форме:

 

For i:=1 to 10 do

For j:=1 to 10 do

Form1.Canvas.Draw(i*32-32,j*32-32, Kartinki[ map[I,j] ]);

 

У вас может возникнуть вопрос откуда взялась цифра 32? Я отвечу. В моем случае картинки я загрузил размером 32х32, Вы же можете подставить свои номера. Таким методом можно поверх текстур земли рисовать также и игровые обьекты, и персонажей, и артефакты. Можно отдельно, а можно сделать так, добавив в цикл еще и переход на новый уровень карты.

 

For n:=1 to4 do

For i:=1 to 10 do

For j:=1 to 10 do

Form1.Canvas.Draw(i*32-32,j*32-32, Kartinki[ map[I,j],n ]);

 

Можно делать массивы картинок и тоже с удобством их использовать в циклах. Ну и на последок рассмотрим кА можно делать записи игровых персонажей. Допустим мы хотим создать персонажа, у которого будут храниться его координаты и скорость ходьбы:

 

Tpers=record

X,Y,Speed:integer;

End;

 

Затем обьявляем переммную с созданным нами типом нашего персонажа:

 

Pers:TPers;

 

В игре задаем ему нужные значения:

 

Pers.X:=5;

Pers.Y:=2;

Pers.Speed:=2;

 

Теперь можно нарисорвать персонажа так:

 

Form1.Canvas.draw(Pers.x,Pers.Y, PersKartinka);

 

Обязательно перед этим нужно загрузить картинку в переменную PersKartinka. Ну, и еще хотелось бы реализовать управление нашим персонажем. Выбрав в форме событие OnKeyPress пишем следующий код:

 

If Key=VK_UP then Pers.y:=Pers.y-Pers.Speed;

If Key=VK_Down then Pers.y:=Pers.y+Pers.Speed;

If Key=VK_Left then Pers.x:=Pers.x-Pers.Speed;

If Key=VK_Right then Pers.x:=Pers.x+Pers.Speed;

 

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

 

Источник: delgame.at.ua

Категория: Уроки по созданию игр | Добавил: Armageddets (07.08.2013)
Просмотров: 5876 | Теги: создание игр, игроделие, игры на delphi, как научиться программировать игры, игровая индустирия, разработка игр, как создавать игры на delphi | Рейтинг: 3.2/4
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Оцените мой сайт
Всего ответов: 103
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 8
    Гостей: 8
    Пользователей: 0