Движок HGE. Введение
Приветствую! Сейчас поговорим о HGE. HGE - это простой в изучении игровой движок с аппаратным ускорением. Отлично подходит для "игроделов" вроде меня. Лично я выбираю движки по принципу "сделал игру за вечер - отлично, не сделал - движок не подходит", так вот, с этим движком я игру за вечер-таки сделал, чего и вам желаю.
Подготовка:
Алгоритм подготовки прост и выглядит приблизительно так:
Сегодня мы выполним все четыре пункта алгоритма. Итак, начнем с первого. Движок HGE бесплатен и скачать его можно с официального сайта (~3.8 MB). Там же можно найти великолепную документацию на английском языке. Далее будем его устанавливать...
Для установки на Borland C++ Builder или популярный сейчас GCC сделайте то же самое, однако файлы библиотек скопируйте с соответствующих папок, то есть для Borland из папки BC а для GCC из папки GCC соответственно.
Вот теперь будем писать тестовую программу. Я буду писать в Microsoft Visual C++ 6.0. Но для начала немного приготовлений...
Создайте новый проект типа Empty Project и откройте его свойства линковки
(Project -> Settings -> Link).
Далее проверьте вашу строку модулей (Object/library modules). Она должна выглядить так:
Если она у вас другая (а она определенно будет другая), сотрите из нее все и введите значение как на картинке. Далее посмотрите команду компиляции (Project Options) и замените ее на:
Теперь все готово. Будем писать код. Комментарии, надеюсь, понятны.
#include <hge.h> HGE *hge = 0; // Эта функция будет вызываться HGE каждый кадр. // Напишите свой повторяющийся код здесь. В этом примере // мы проверим, нажал ли пользователь ESC. bool FrameFunc() { // Возвращением TRUE // мы скажем HGE остановить приложение. if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true; // Продолжаем выполнение return false; } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { // Здесь мы используем глобальный указатель на интерфейс HGE. // Используйте hgeCreate() каждый вызов интерфейса HGE. // Не забудьте, что каждый блок hgeCreate() должен // сопровождаться его собственным hge-Release() hge = hgeCreate(HGE_VERSION); // Устанавливаем фреймовую функцию. hge->System_SetState(HGE_FRAMEFUNC, FrameFunc); // Устанавливаем заголовок окна. hge->System_SetState(HGE_TITLE, "HGE Tutorial 01 - Minimal HGE application"); // Запускаем в оконном режиме 800х600 hge->System_SetState(HGE_WINDOWED, true); // Не используем звук. hge->System_SetState(HGE_USESOUND, false); // Пробуем инициировать интерфейс. // Если у нас проблемы, возвращаем FALSE // и подробную информацию из System_GetErrorMessage(). if(hge->System_Initiate()) { // Запускаем фреймовую функцию. // Выполнение завершается здесь // пока возвращается TRUE из FrameFunc hge->System_Start(); } else { // Если инициализация провалена, возвращаем MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL); } // Пользователь нажал ESC // и мы закрываемся. // Восстанавливаем данные оконной подсистемы // и чистим оперативку после себя. hge->System_Shutdown(); // Останавливаем интерфейс HGE. // Больше HGE не будет выполнять ничего. hge->Release(); return 0; }
Тестовую программу мы написали. Теперь радуйтесь. Я напишу еще достаточно уроков про HGE. На следующем уроке рассмотрим интересности этого движка.
Урок 8 - Движок HGE. Второй туториал