这次我们会学习使用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);
在RenderFunc中我们渲染所有的对象,调用它们的渲染方法。
hge->Gfx_BeginScene(); hge->Gfx_Clear(0); par->Render(); spr->Render(x, y); fnt->printf(5, 5, HGETEXT_LEFT, "dt:%.3f/nFPS:%d", hge->Timer_GetDelta(), hge->Timer_GetFPS()); hge->Gfx_EndScene();
在WinMain函数中HGE初始化后创建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); par->Fire();
现在所有对象创建完毕开始游戏循环。
hge->System_Start();
游戏循环结束我们删除所有的HGE对象。
delete par; delete fnt; delete spt; delete spr;
这个程序的结束值和先前的示例是一样的。