Прыгающая точкаDelphi , Графика и Игры , OpenGLПрыгающая точка
Прежде всего, определим сначала, какие навыки нам нужны, многие из вас изучали или изучаете язык программирования Pascal, именно с его помощью мы попробуем написать несколько программ. Сейчас почти все игры разрабатываются для Windows, так что нам придётся работать со средой Delphi. Программы в среде Delphi (Delphi не язык программирования) пишутся на языке Object Pascal, специальном диалекте Паскаля. От языка Pascal этот диалект отличается тем, что он имеет большое количество дополнительных возможностей. Также вам следует уметь работать хотя бы с одним графическим редактором, хотя бы с Paint. В следующих статьях мы рассмотрим ряд других возможностей, например, как создать движущийся объект с помощью программы AutoCAD или как создать множество визуальных эффектов: тень, отражение. В данной статье мы рассмотрим несколько самых аспектов: как с помощью точек нарисовать простой движущийся объект, как управлять объектами с помощью клавиатуры. Сейчас графика для Windows программируется одним из двух средств: DirectX или OpenGL. Работать с DirectX пришлось бы с помощью языка C++, который является слишком громоздким для начинающего программиста, так что лучше использовать второе. Если вы еще не работали с Delphi, рекомендую прочитать любую книгу на эту тему. Сейчас нам предстоит сделать самый первый шаг, сделав который, вы сможете с уверенностью двигаться дальше. Для начала убедитесь, что вы установили Delphi пятую или четвертую версию этого пакета. Если у вас не установлен данный пакет, сделайте это как можно быстрее, так как без Delphi вы не сможете написать ни одной программы из книги. Для начала мы рассмотрим очень простой пример графической программы. Она представляет собой квадрат, появляющийся в различных точках экрана. Причем, координаты будут определяться случайно. Теперь перейдем непосредственно к программе.
Все, или почти все современные игры полностью используют площадь экрана, так что верхняя панель экрана и нижнее меню Windows становятся невидимыми. Такого эффекта легко добиться:
Начнём с того, что подключим графическую библиотеку к списку используемых модулей. Щелкните два раза левой кнопкой мыши по главной форме. Перед вами появятся заготовки программного кода. Перейдите в самое начало окна программного кода и найдите список подключенных модулей.
Измените этот список так, как показано ниже:
Для начала проанализируем сам принцип работы программы. Вначале мы присваиваем переменным x и y случайные координаты и заносим их в буфер памяти, после чего выводим их на экран. После этого закрашиваем точку в цвет фона, и цикл повторяется до тех пор, пока мы не остановим программу. До начала работы сервер OpenGL должен определить многие характеристики аппаратурного обеспечения, также важно узнать размер пикселя, его цвет. Именно переменная nPixelFormat содержит в себе такие характеристики. Можно изменить интервал времени на меньший или больший, тогда точка будет появляться чаще или реже. Вам, наверное, интересно узнать, почему точка появляется только в одной четверти экранной формы. Все очень просто Так как значения x и y могут быть только положительными, то и точка может появляться только в первой четверти системы координат. Такую систему координат мы задали оператором glViewPort (0,0,Clientwidth,Clientheight). Оператором glPointSize(20) мы задаем размер точки, а оператором glColor3f задаем ее цвет. Самый важный оператор программы (строка 57) выводит двумерную точку на экран со случайными координатами. Оператор glBegin открывает командную скобку, а оператор glEnd закрывает ее. Обратите внимание на аргумент оператора glBegin(GL_POINTS). Этот аргумент определяет, что на экране должна появится именно точка, а не какой-нибудь другой объект (линии, многоугольники также задаются с помощью оператора glVertex2f). С помощью функции glVertex3f можно задавать точку в пространстве. Чтобы содержимое буфера выводилось на экран, мы используем функцию SwapBuffers. Не пугайтесь, что программный код получился столь громоздким. Большую его часть можно использовать как шаблон, изменяя лишь содержимое между двумя командными скобками glBegin и glEnd. Или можете создать процедуру, содержащую строки от 1 до 25, параметры которой были бы цвет, размер точек и область вывода. Теперь можете поэкспериментировать с программой, изменяя цвет точки, ее размер, скорость появления и т. д. Упражнения:
Вопросы:
Ответы:
Итоги: Освоив первую главу, вы смогли написать простейшую графическую программу с использованием OpenGL, теперь можно переходить к изучению более сложного материала. Но, если вы не уверены, что прочитанное вам понятно рекомендую прочитать еще раз, так как без этих основ вы не сможете разобраться с более сложными темами. Прыгающая точка: создание движения на экране в Delphi с использованием OpenGL. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
|||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |