Веб программирование

Движок HGE. Введение

 
 

Приветствую! Сейчас поговорим о HGE. HGE - это простой в изучении игровой движок с аппаратным ускорением. Отлично подходит для "игроделов" вроде меня. Лично я выбираю движки по принципу "сделал игру за вечер - отлично, не сделал - движок не подходит", так вот, с этим движком я игру за вечер-таки сделал, чего и вам желаю.

Подготовка:

Алгоритм подготовки прост и выглядит приблизительно так:

  1. Скачать движок HGE.
  2. Установить движок.
  3. Написать тестовую программу.
  4. Радоваться.

Сегодня мы выполним все четыре пункта алгоритма. Итак, начнем с первого. Движок 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). Она должна выглядить так:

1

Если она у вас другая (а она определенно будет другая), сотрите из нее все и введите значение как на картинке. Далее посмотрите команду компиляции (Project Options) и замените ее на:

2

Теперь все готово. Будем писать код. Комментарии, надеюсь, понятны.

#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. На следующем уроке рассмотрим интересности этого движка.


Есть вопросы? Спроси на нашем форуме!!
Flash GB [09.07.2012 10:31]

если пишешь видео, то со звуком, а то как урок для глухонемых получается

Кулхацкер [09.07.2012 10:44]

Запишу со звуком, если еще раз писать видео буду. Ты отзыв об уроке напиши. Мне же интересно.

Гость [03.08.2012 10:50]

Я только только разбираюсь с Microsoft Visual Studio 2010 VC Express

Скопировал Lib и include и DLL как в видео. Скопировал исходник и получил в ответ:
1>------ Построение начато: проект: 33, Конфигурация: Debug Win32 ------
1> 33.cpp
1>33.obj : error LNK2019: ссылка на неразрешенный внешний символ _hgeCreate@4 в функции _WinMain@16
1>c:\users\pooh\documents\visual studio 2010\Projects\33\Debug\33.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Кулхацкер [03.08.2012 11:10]

Гость,

лучше скачай visual c++ 6.0. Я со студией не работаю почти. Так что я не помощник. В Visual C++ 6.0:

зайди в Project -> Settings -> Link и выстави параметры как в статье.

Гость [03.08.2012 12:03]

Кулхацкер, спасибо. Качаю Visual C++ 6.0

Гость [03.08.2012 13:44]

Кулхацкер, спасибо. Первый исходник заработал без проблем. Установить всё оказалось проще и понятнее, чем со студией-экспресс. Едем дальше

Pharma555 [28.10.2012 13:05]

Very nice site!

Кулхацкер [28.10.2012 16:01]

А все последнее обещание выполнить никак не получается :(

Varron [22.08.2013 22:59]

Автор, жги еще. Хорошо получилось.

ReDoX170 [22.08.2013 23:40]

Varron, автор просто перевел официальный туториал, сам он в движке ничего не понимает.

Coolhacker770 [23.08.2013 04:28]

"ничего не понимает" - сказано до неприличия громко, однако, да, переводить получится лучше, чем писать свое.



Оставлять комментарии можно только зарегистрированным




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