b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

hge_hge引擎自定义对话框_传奇hge自定义怪物教程

电脑杂谈  发布时间:2016-11-25 05:03:11  来源:网络整理

HGE中文社区 HGE中文帮助

今天了解到有个HGE的2D免费游戏引擎,不由得心痒痒想看看,本来还害怕太大,下起来麻烦,结果去其官网一看,才2M多,马上就下下来。

官网地址:

Google了一下,英文资料比较多,中文就几篇,找到一篇中文的tutorial来试试吧。

Tutorial地址:?id=66

二话不说,建立一个win32的普通窗口工程,选择空项目,把上面的代码拷贝一下,再将lib什么的加上,代码基本就是这样的:

#include "hge.h" //引用HGE头文件,每个使用HGE Engine的程序都要有这行。hge #include "hgesprite.h" //精灵系统头文件

#include "hgefont.h" //字体系统头文件

#include "hgeparticle.h" //粒子系统头文件

#pragma comment (lib,"D:\\src\\libs\\hge16\\lib\\vc\\hge.lib")

#pragma comment (lib,"D:\\src\\libs\\hge16\\lib\\vc\\hgehelp.lib")

//定义Engine的指针

HGE *hge=NULL;

//HGE对象定义

hgeSprite *spt;

hgeFont *fnt;

//粒子系统

hgeParticleSystem *par;

//颜色

hgeColor color;

//纹理和声音句柄

HTEXTURE tex;

HEFFECT snd;

hgeQuad quad;

//回调,游戏主循环

bool FrameFunc()

{

float dt=hge->Timer_GetDelta();

// 检测键盘

if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;//按下ESCAPE则结束循环

quad.v[0].tx=0; quad.v[0].ty=0;

quad.v[1].tx=1; quad.v[1].ty=0;

quad.v[2].tx=1; quad.v[2].ty=1;

quad.v[3].tx=0; quad.v[3].ty=1;

color.SetHWColor(0xFFFFE060);

//更新粒子系统

//设置粒子密度

par->info.nEmission=150;

par->Update(dt);//更新粒子系统状态

//渲染画面

hge->Gfx_BeginScene();

hge->Gfx_Clear(0x00000000);

hge_传奇hge自定义怪物教程_hge引擎自定义对话框

hge->Gfx_RenderQuad(&quad);

par->Render();//粒子系统渲染

//输出字体

//fnt->SetColor(ARGB(0,0,48,156));

fnt->SetColor(color.GetHWColor());

fnt->printf(5,5,0,"deltatime:%.3f\nFPS:%d\nAuthor:thinkinnight", dt, hge->Timer_GetFPS());

hge->Gfx_EndScene();//渲染结束

//继续循环

return false;

}

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

//创建Engine接口

hge = hgeCreate(HGE_VERSION);

//生成日志

hge->System_SetState(HGE_LOGFILE, "Game.log");

//设置回调

hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);

//设置窗口标题

hge->System_SetState(HGE_TITLE, "MyHGEDemo");

//设置最大FPS

hge->System_SetState(HGE_FPS, 100);

//是否是窗口模式

hge->System_SetState(HGE_WINDOWED, true);

//设置窗口的大小

hge->System_SetState(HGE_SCREENWIDTH, 800);

hge->System_SetState(HGE_SCREENHEIGHT, 600);

//设置颜色深度

hge->System_SetState(HGE_SCREENBPP, 32);

//使用声音资源

hge->System_SetState(HGE_USESOUND, true);

//Engine初始化

if(hge->System_Initiate()) {

//载入声音和纹理

snd=hge->Effect_Load("BG.mp3");

tex=hge->Texture_Load("texture.png");

quad.tex=hge->Texture_Load("texture.jpg");

if(snd && tex && quad.tex)//如果没有意外

{

//载入字体

fnt=new hgeFont("font1.fnt");

//创建粒子Sprite用于粒子系统

传奇hge自定义怪物教程_hge引擎自定义对话框_hge

spt=new hgeSprite(tex, 0,0, 32, 32);

spt->SetBlendMode(BLEND_COLORMUL | BLEND_ALPHAADD | BLEND_NOZWRITE);

spt->SetHotSpot(16,16);

// 创建和设置粒子系统

par=new hgeParticleSystem("trail.psi",spt);par->MoveTo(400,300);//粒子发散中心点

par->Fire();//启动

quad.blend=BLEND_ALPHABLEND | BLEND_COLORMUL |

BLEND_NOZWRITE;

for(int i=0;i<4;i++)

{

//设置颜色,格式为0xAARRGGBB

quad.v[i].col=0xFFFFFFFF;

}

quad.v[0].x=0; quad.v[0].y=0;

quad.v[1].x=1024; quad.v[1].y=0;

quad.v[2].x=1024; quad.v[2].y=1024;

quad.v[3].x=0; quad.v[3].y=1024;

hge->Effect_PlayEx(snd,100,0,1.0f,true);

//启动Engine开始主循环

hge->System_Start();//该方法反回则代码游戏将要退出

//删除用过的资源

delete par;

par=NULL;

delete fnt;

fnt=NULL;

delete spt;

spt=NULL;

hge->Target_Free(quad.tex);

hge->Texture_Free(tex);

hge->Effect_Free(snd);

}

}

//Engine关闭

hge->System_Shutdown();

//释放指针

hge->Release();

return 0;

}

build一下,哈,成功。hge

运行一下呢?咦!怎么出来一下就跳出了,看来要看看代码,原来是这样snd=hge->Effect_Load("BG.mp3");

tex=hge->Texture_Load("texture.png");

quad.tex=hge->Texture_Load("texture.jpg");


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-21781-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 元太祖成吉思汗
        元太祖成吉思汗

        请把你的这条高论建议给奥巴马和安倍

      • 周慧敏
        周慧敏

        我们也要巡航才对吗

      热点图片
      拼命载入中...