Как сделать игру в delphi
Создать игру, Конструкторы игр, Игровые движки, Разработка игр, Игровые ресурсы
10 Лучших пользователей
/—>
Партнеры сайта |
. |
Учимся писать игру на DelphiЧто такое ЛКИ-Creator? В самом деле, почему за основу мы взяли Delphi, а не, скажем, С++? Что нужно знать, чтобы начать работу? Подготовка к работе Эта строка велит нашему движку запуститься, а также сообщает ему, что он расположен на форме Form1. Класс TStarEscortWorld Здесь мы описали две процедуры, которые нам придется переопределить: конструктор, задающий изначальные параметры игрового мира, и функцию Process, которая каждый такт игрового цикла проверяет состояние всех игровых объектов, опрашивает данные с клавиатуры и перерисовывает все, что должно отобразиться на экране. Задаем начальные значения Конструктор игрового мира constructor TStarEscortWorld.Create(aTick : integer; // Наш корабль function TStarEscortWorld.Process(Tick : integer) : boolean; // Чтение клавиатурных команд // Прежде всего остального обрабатываем begin Engine.Deactivate; if Objects[1].x = 9750 then Сейчас мы займемся написанием простой графической игрушки, суть которой за отведенное время успеть найти все фигуры одинакового цвета. Не знаю как более точно передать смысл этой игры. в общем, дальше вы все сами поймете) Если захотите узнать стоимость SEO услуг, то посетите сайт netsend.ru. Как всегда открываем Delphi и создаем новый проект. Сразу кидаем на форму компонент DrawGrid с закладки Additional. У него нам нужно изменить ряд свойств: В итоге у вас должно получиться что то похожие. Теперь мы должны произвольно присвоить каждой ячейке определенный цвет. Всего цветов у нас будет 3 (красный, зеленый и синий). Переходим в код и выше ключевого слова var вставляем вот такой код const Далее, нам понадобиться создать двухмерный массив, в ячейках которого будут храниться цвета соответствующих квадратов. т.к. размер игровой области у нас 20 на 20, соответственно и массив у нас будет такой же размерности. Но для начала давайте объявим парочку констант в которых будет храниться размер игровой области. Опять же над ключевым словом var напишем следующий код: Const А теперь создадим массив. Делать мы это будем после ключевого слова var т.е. сразу же после: var ColorOfBrick : array [0..MAX_COLUMNs, 0..MAX_ROWS] of TColor; Двигаемся дальше, сейчас нам нужно создать процедуру которая будет при запуске игры случайным образом назначать квадратам соответствующие цвета. После ключевого слова public пишем procedure AssignBrickColors; procedure TForm1.AssignBrickColors; Конечно же при запуске, также необходимо начинать новую игру, поэтому создаем обработчик событий onCreate на форме, опять же между begin end пишем: Ну и напоследок создайте обработчик событий OnDrawCell на компоненте DrawGrid напишите там DrawGrid1.Canvas.Brush.Color := ColorOfBrick[ACol][ARow]; Запускаем проект, вот что получилось у меня: Как сделать игру в delphiДалее, например при создании формы пишем начальные данные: Затем заходим в событие формы отвечающее за управление персонажем (form1.OnKeyPress, OnkeyDown или OnKeyUp) и весь имеющийся там код ставим внутри нашей проверки: if Upravlenie=true then А теперь просто делаем кнопочку, которая будет отключать управление или сами вручную прописываем код, который запрещает управление: Вот в общем-то и все. Вывод производится через цикл, цифра которая хранится в каждой из ячеек карты означает номер картинки, поэтому мы в цикле в координатах каждой ячейке рисуем картинку с нужным номером. например у нас карта размера 10х10 рисоваться она будет именно так: for i:=0 to 9 do var Ну и нагрузить в этот массив все нужные картинки Внимание! Этот документ ещё не опубликован. Статья будет пополняться по частям и не сразу (извините, но создание полноценной статьи очень тяжкий интеллектуальный труд.) Часть II. После того, как объект был создан, можно его отрисовывать на любую поверхность. Для отрисовки в классе TFastDIB достаточно много функций (разные способы отрисовки), но самой элементарной является функция Draw. Пример создания, отрисовки и уничтожения переменной типа TFastDIB: Пример создания, загрузки, отрисовки и уничтожения переменной типа TFastDIB: Примечание: с помощью этой функции можно загружать графические данные только формата *.bmp. Так же предусмотрена возможность сохранения результата с помощью функции SaveToFile. Данный код генерирует картинку размером 64×64 пикселя с режимом 32 бита (с поддержкой альфа-канала) со случайными цветами и случайной маской прозрачности, отрисовывает результат на форме. Примечание: если вы хотите использовать спрайт с альфа-каналом, то отрисовывать его вы сможете только функциями AlphaDraw и AlphaStretch, т.к. только они поддерживают возможность отрисовки спрайта с альфа-каналом с прозрачностью. Система игрового движка. Графическое устройство. Всю работу графической системы можно разделить на три части: создание графических устройств, их проверка и отрисовка, уничтожение графических устройств. Т.е. все это можно описать в 3-х функциях: CreateGraphicsDevices; (здесь последует продолжение статьи, но чуть позже) Самоучитель по Delphi 7 для начинающих с примерамиСреди прекрасных систем, осуществляющих объектно-ориентированное визуальное проектирование, особое место занимает Delphi. Она поможет, как профессионалам в сфере программирования, так и новичкам в этой отрасли. Если человек только начинает учиться программированию, посредством использования этого языка есть возможность создавать самые простые прикладные программы. А вот перед профессионалами открываются возможности в реализации любых, даже самых сложных программных продуктов, независимо от их типа. Запуск программы посредством нажатия одной кнопкиДля того, чтобы каждый раз не заниматься поиском папки для запуска программы Delphi, рекомендуется на рабочем столе создать ярлык. Это существенно упростит процесс запуска программы по сравнению с поиском файла под названием delphi32.exe. После запуска на выполнение программы перед пользователем будет запущено четыре рабочих окна, как и в любой другой среде программирования. Главное окно Delphi размещается в верхней части экрана, на котором находится среда разработки и элементы для управления. По левую сторону размещается Инспектор объектов, в котором есть возможность выбора определенных компонентов и выбора их свойств. В центральной части рабочей области находится окно программной начинки и форма, по которой будет создаваться будущая программа. Стоит обратить внимание на то, что в качестве визуального прообраза будущей программы выступает именно окно формы. Создание самой простой программы в Delphi достаточно легкое и состоит из таких шагов: Обратите внимание на то, что не во всех версиях программы Delphi запуск происходит посредством нажатия клавиши F9. Здесь обязательно нужно смотреть на всплывающую подсказку. Компоненты DelphiВ пустой форме, созданной в среде программирования Delphi, смысла нет никакого. Поэтому нужно разобраться с тем, какие можно использовать компоненты. Найти их можно на главном окне на специальной палитре компонентов. Если рассматривать основные и базовые компоненты, то их можно найти на таких вкладках: Если навести курсор мыши на их пиктограммы, появится всплывающее окно с названием компонента. Процесс перенесения компонентов на форму является достаточно простым, так как для этого нужно выполнить щелчок по желаемому элементу, после чего нужно указать место на форме, где он должен разместиться. Для самостоятельного конструирования желаемого интерфейса есть возможность свободно перемещать все компоненты по форме. Среди основных компонентов, отвечающих за отображение текста, стоит выделить такие элементы, как Button, Memo, Label, Edit. В инспекторе объектов для каждого из этих элементов можно установить необходимые свойства. Для определения положения зачастую применяются такие основные свойства: После того, как компоненты будут размещены на форме, они получат определенные значения этих свойств. Но в том случае, если есть необходимость установить определенные параметры, сделать это можно в инспекторе объектов на специальной вкладке Свойства для каждого отдельного элемента. Помимо этого, стоит обратить внимание на то, что в Инспекторе объекта есть возможность выбора множества других свойств. Среди них есть свойство, которое делает компоненты невидимыми или же недоступными и множество других. События DelphiКаждый программист, работающий в операционной системе Windows, знает о том, что она является многозадачной. Это указывает на то, что в ней в один и тот же момент времени сразу может работать несколько программ. Поэтому одним из важных этапов в процессе создания любой программы является создание специального кода-обработчика для конкретного события. Особенность Delphi состоит в том, что он самостоятельно получает сообщения от системы Windows и обрабатывает их без посторонней помощи человека. Для каждого из используемых компонентов может быть создано огромное количество событий, на которые они реагируют. Какие события нужно обрабатывать, самостоятельно решает программист, занимающийся созданием программного продукта.
В том случае, если осуществить процесс раскрытия выпадающего списка, то можно заметить, что в нем будут размещаться те обработчики, которые готовы к непосредственному использованию. Это указывает на то, что один и тот же обработчик может быть применен для того, чтобы обработать события одного из элементов, находящихся на форме. Для любого визуального компонента можно выбрать множество событий, среди которых основными являются следующие: Несмотря на вышеперечисленные события, существует их еще достаточно большой список, используемый для компонентов, расположенных на форме. Константы, переменные и их видыПеред тем, как в программе Delphi применять определенные данные, они на самом первом этапе должны быть описаны. При этом сам компилятор максимально следит за тем, чтобы в соответствии с описанием применялись необходимые виды. Именно это в дальнейшем поможет обойти стороной возникающие ошибки. Что же касается непосредственно самого регистра символов, то в Delphi он не имеет особого значения. Что же касается постоянной величины, то ее часто именуют в виде константы. Что же касается процесса описания констант, то оно является полностью аналогичным процессу описания переменным. Но здесь вместо слова Var применяется слово Const. Здесь можно навести такой пример: Что же касается типов данных, то в Delphi в первую очередь выделяются числа и строки. В качестве строки выступает определенная последовательность символов, которые находятся в одинарных кавычках. При этом не обязательно, чтобы в строке были символы, так как она и вовсе может быть пустой. Среди наиболее востребованных строковых типов стоит обратить внимание на String. В этом типе может находится определенное количество символов, общим объемом до 2 Гб. В том случае, если есть необходимость в ограничении количества символов, то сразу после слова String в квадратных скобках нужно указать максимально возможное количество символов. Если мы имеет дело с одиночными символами, то в данном случае лучше использовать тип данных Char. Рассматривая числа, стоит обратить внимание на то, что они могут быть, как целыми, так и дробными. Для целых чисел чаще всего применяются такие типы данных: Если же рассматривать наиболее удобный тип данных для целых чисел, то особое место здесь занимает тип Integer. Что же касается прочих видов, то зачастую их применяют в том случае, если есть необходимость в уменьшении памяти на компьютере для сохранения данных. Что же касается дробных чисел, то у них целая часть отделяется от дробной с помощью десятичной запятой. В данном случае используются такие типы данных: Для применения в среде программирования Delphi наиболее удобным для дробных чисел является тип данных Real. Полностью эквивалентным к нему также можно считать и тип Double. Стоит обратить внимание на то, что в процессе работы с такими числами все вычисления происходят максимально приближенно, но не точно. Для того, чтобы минимизировать процесс возникновения ошибок в процессе бухгалтерских расчетов, может использоваться такой тип данных, как Currency. Что же касается логического типа данных, то здесь выделяют тип Boolean, который может иметь только два значения: Ложь или Истина. Поэтому теперь, зная основные компоненты, особенности создания событий и типы данных, можно в среде программирования Delphi создавать самые простые программы. Структурные и собственные типы данныхВ том случае, если есть необходимость в создании достаточно сложной программы, использования строковых и числовых типов данных будет недостаточно для реализации этого процесса. В данной ситуации есть необходимость в применении собственных и структурных типов данных. Особенность языка программирования Delphi заключается в том, что у программиста есть возможность самостоятельно создавать собственные типы данных. В том случае, если есть необходимость внести их в будущую программу, для этого применяется специальный оператор type. Особое место занимает перечислимый тип данных. Его особенность состоит в том, что в диапазон его значений входит набор определенных идентификаторов. Зачастую этот тип используют в том случае, когда типы данных описываются не числами, а обычными словами. Для перечисления используются в обязательном порядке круглые скобки. К перечислимым типам можно отнести: Что же касается структурных типов данных, то применяются они почти в каждой создаваемой программе. Среди них выделяют: Массив представляет собой достаточно сложную структуру, к которой можно получить доступ только по определенному индексу (номеру). Все элементы, которые входят в структуру массива, должны иметь одинаковый тип. При этом сами массивы могут быть статическими, в которых количество элементов является неизменным, так и динамическими.
Не менее удобным и важным элементом выступают записи. Посредством использования этого компонента есть возможность в реализации такого процесса, как создание собственной базы данных. Сама запись представляет собой особую структуру данных, в которой каждый элемент имеет личное имя и выбранный тип данных. Очень часто каждый отдельный элемент, входящий в состав записи, называют просто полем. Что же касается множества, то сюда принадлежит определенная группа компонентов, которая зачастую объединяется посредством использования одного и того же имени. Стоит обратить внимание на то, что в одном множестве может быть не больше, чем 256 элементов. Операторы и выражения в программной среде DelphiРассматривая программную среду Delphi, стоит обратить внимание на то, что в ней применяются: Также существует категория прочих выражений, но вышеперечисленные являются наиболее часто применяемыми. Рассматривая математические выражения, которые используются чаще всего, в них зачастую можно встретить символ присваивания, вычитания, сложения, деления и умножения. В том случае, если есть необходимость в применении таких выражений, в обязательном порядке нужно учитывать приоритет действий. Связано это с тем, что в языке программирования Delphi все действия осуществляются с учетом приоритета следования, а не в определенном порядке. Например, такие операции, как деление и умножение, имеют приоритет намного выше, нежели вычитание и сложение. В том случае, если есть необходимость указать определенную последовательность, нужно использовать круглые скобки. Это будет указывать на то, какие операции будут выполняться в первую очередь. При этом не стоит забывать о том, что в одни скобки можно вкладывать неограниченное количество других круглых скобок. Не стоит забывать о том, что помимо базовых математических действий в языке программирования Delphi представлено множество других математических функций, доступных к применению. Получить доступ к ним можно только тогда, когда добавить в программу дополнительный модуль Math. Не стоит забывать о том, что у программиста есть возможность в создании и собственных функций, но, естественно, использование встроенных компонентов будет намного легче. Если есть необходимость в выполнении действий над данными логического типа, в данном случае используются логические выражения. Особенности их использования можно найти в условных операторах. И если с оператором присваивания все достаточно просто и понятно, то особенность условных операторов заключается в том, что посредством его использования можно осуществить процесс изменения порядка выполнения определенных операторов. В первую очередь такое изменение будут зависеть от конкретных условий, предусмотренных в программе. Что же касается операторов цикла, то с их помощью можно реализовать процесс повторения одного и того же действия.
|