Пример 03 - Использование вспомогательных классов
В этом примере мы научимся как пользоваться некоторыми вспомогательными классами HGE. Вопервых
мы подключим необходимые заголовки и объявим глобальный указатель на интерфейс HGE который
необходим для работы большинства вспомогательных классов:
#include <hge.h>
#include <hgesprite.h>
#include <hgefont.h>
#include <hgeparticle.h>
HGE *hge=0;
Теперь мы объявим указатели на объекты HGE который будем использовать.
hgeSprite* spr;
hgeSprite* spt;
hgeFont* fnt;
hgeParticleSystem* par;
HTEXTURE tex;
В функции FrameFunc (функция кадра) мы обнавляем объект системы частиц: мы настраиваем
частоту испускания основываясь на скорости спрайта и перемещяем в текущую позицию спрайта.
par->info.nEmission=(int)(dx*dx+dy*dy)*2;
par->MoveTo(x,y);
par->Update(dt);
Затем мы отображаем все наши объекты, вызывая их методы отобажения:
hge->Gfx_BeginScene();
hge->Gfx_Clear(0);
par->Render();
spr->Render(x, y);
fnt->printf(5, 5, "dt:%.3f\nFPS:%d", dt, hge->Timer_GetFPS());
hge->Gfx_EndScene();
В функции WinMain после инициализации, мы создаем объекты HGE, которые потом будем
использовать. Сначала мы создаем и настраиваем спрайт:
spr=new hgeSprite(tex, 96, 64, 32, 32);
spr->SetColor(0xFFFFA000);
spr->SetHotSpot(16, 16);
Затем мы загружаем шрифт. Щрифт представляетсядвумя файлами:
font1.fnt и font1.png.
fnt=new hgeFont("font1.fnt");
Мы создаем систему частиц и спрайт для нее:
spt=new hgeSprite(tex, 32, 32, 32, 32);
spt->SetBlendMode(
BLEND_COLORMUL | BLEND_ALPHAADD | BLEND_NOZWRITE);
spt->SetHotSpot(16, 16);
par=new hgeParticleSystem("trail.psi", spt, 0);
par->Fire();
Теперь все объекты созданы и мы начинаем игровой цикл:
hge->System_Start();
Когда игровой цикл заканчивается, мы удаляем все созданные HGE объекты:
delete par;
delete fnt;
delete spt;
delete spr;
Остальной процесс завершения идентичен тем, что были в предидущих примерах.
Полный исходный код с детальными комментариями для этого примера можно найти в директории tutorials\tutorial03.
Требуемые медиа файлы можно найти в директории tutorials\precompiled.
|