Туториал 01 - Минимальное HGE приложение Сначала, мы должны включить заголовочный файл hge.h и объявить переменную для хранения HGE указателей интерфейса:
Code
#include <hge.h>
HGE *hge = 0;
Затем мы создаем функцию окна. Функция окна - пользовательская функция, которая будет вызываться в HGE один раз: разместите код игрового цикла здесь. Когда окно возвращает истину, HGE останавливает выполнение цикла игры.
В этом примере мы проверяем, нажата ли была клавиша ESC:
Code
bool FrameFunc()
{
if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;
return false;
}
Функция WinMain это стандартная точка входа в приложениях Winows. Здесь мы будем получать указатель в HGE интерфейсе для доступа к HGE функциям. В этом примере мы используем глобальный указатель в HGE интерфейсе. Вместо этого вы можете использовать
hgeCreate функцию каждый раз, когда вам нужен доступ к HGE. Только убедитесь, что есть соответствующий вызов
функции для каждого вызова
hgeCreate.
Code
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
hge = hgeCreate(HGE_VERSION);
Затем мы устанавливаем какие-то внутренние системы HGE для настройки среды. Хотя большая часть состояний системы имеет соответствующие значения по умолчанию,
HGE_FRAMEFUNC должен быть установлен перед вызовом
System_Start.
Code
hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);
hge->System_SetState(HGE_WINDOWED, true);
hge->System_SetState(HGE_USESOUND, false);
hge->System_SetState(HGE_TITLE,
"HGE Tutorial 01 - Minimal HGE application");
Теперь мы начинаем HGE с установленными функциями. Если что-то пойдет не так,
System_Initiate функция возвращает ложь и описание того, что произошло читая с
System_GetErrorMessage.
Имея HGE инициализацию мы начинаем цикл игры с призывом функции
System_Start. Выполнение «останавливается» здесь, пока возвращается истина из окна функции.
Code
if(hge->System_Initiate())
{
hge->System_Start();
}
else
{
MessageBox(NULL, hge->System_GetErrorMessage(), "Error",
MB_OK | MB_ICONERROR | MB_APPLMODAL);
}
Теперь, если клавиша ESC была нажата или пользователь закрыл окно, с помощью других средств, мы восстанавливаем видеорежим и высвобождаем все выделенные ресурсы. Кроме того, мы должны освободить HGE интерфейс:
Code
hge->System_Shutdown();
hge->Release();
return 0;
}
Вуаля! Всего 20 линий кода и окно игры уже функционирует!
[spoiler=Весь код]
Code
#include <hge.h>
HGE *hge = 0;
bool FrameFunc()
{
if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;
return false;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
hge = hgeCreate(HGE_VERSION);
hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);
hge->System_SetState(HGE_WINDOWED, true);
hge->System_SetState(HGE_USESOUND, false);
hge->System_SetState(HGE_TITLE,
"HGE Tutorial 01 - Minimal HGE application");
if(hge->System_Initiate())
{
hge->System_Start();
}
else
{
MessageBox(NULL, hge->System_GetErrorMessage(), "Error",
MB_OK | MB_ICONERROR | MB_APPLMODAL);
}
hge->System_Shutdown();
hge->Release();
return 0;
}