Tutorial 03 – 使用 helper classes
这次我们会学习使用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;
这个程序的结束值和先前的示例是一样的。