HGE 游戏引擎

 

HGE 是一个硬件加速(Hardware accelerated)的 2D 游戏引擎(Game Engine),HGE 是一个富有特性的中间件,可以用于开发任何类型的 2D 游戏。HGE 封装性良好,以至于你仅仅需要关系游戏逻辑(Game Logic),而不需要在意 DirectX,Windows 消息循环等。

HGE 架构在 DirectX 8.0 之上,能够跑在大多数的 Windows 系统上。

 

1. 选用 HGE 的理由:

    1)专业化 --- 专注于 2D 领域

    2)简单化 --- 非常容易使用

    3)技术优势 --- 基于 Direct3D API 有较好的性能和特性

    4)免费 --- 对于个人或者商业用户都免费,遵循 zlib/libpng license

    5)代码高度的一致性 --- 代码是否具有一致性,是衡量代码质量的标准之一(《 Code Reading: The Open Source Perspective》)

 

2. 体系结构:

HGE 有3个抽象层(layers of abstraction):

    1)核心函数(Core Functions)

    处于核心的函数和例程(routines),被整个系统所依赖。

    2)辅助类(Helper Classes)

    游戏对象相关的类,架构于 HGE Core Functions 层之上,辅助用户进行游戏开发。

    3)创作工具(Authoring Tools)

    用于游戏开发的一组工具。

从上图可以看见:

    1)用于代码通常只需要架构在 HGE Helper Classes 之上(HGE 中 Helper Classes 并不是足够强大,有时候常常需要利用 Core Functions 层的一些函数)

    2)通常游戏资源(Game Resources)需要使用 HGE 创作工具来产生

 

3. 体系结构概述:

1)Core Functions 层

    <1> 图形格式支持:支持 BMP, JPG, PNG, TGA, DDS, DIB 文件格式

    <2> 支持窗口模式和全屏模式

    <3> 音频支持和音乐回放(music playback):支持 WAV, MP3, MP2, MP1 and OGG 音频文件格式(audio file formats),支持 MO3, IT, XM, S3M, MTM, MOD and UMX 音乐文件格式(music file formats),支持压缩流的回放。声音大小和声道的控制

    <4> 输入设备支持:鼠标和键盘

    <5> 资源:读取硬盘上的资源,支持 ZIP 打包的文件格式

    <6> 日志支持

2)Helper Classes 层

    <1> 精灵(Sprites)和动画(Animations)

    对于所有硬件设备特性的直接支持:锚点(anchor)支持,伸展、缩放、旋转的支持,不同的回放模式的支持

    <2> 字体

    读取和渲染(render)位图字体,多种字体排列方式,旋转和缩放字体,字符串宽度计算等

    <3> 粒子系统(particle systems)和网格变形(distortion mesh)

    高效的粒子系统,可用于创建烟雾、爆炸、魔法效果等,提供粒子系统的管理,支持定界盒(bounding box)计算和冲突检测(collision detection)

    <4> 资源管理:通过简单的函数调用,来创建复杂的对象,自动的内存管理。对于资源组(resource groups)采用预先缓存和特殊的清除处理(这是一种通过控制对象分配和释放来提高效率的方法)

    <5> GUI:强大而灵活的 GUI 管理,支持动画式的 GUI

    <6> 矢量(Vectors),对于 2D 矢量的完全支持

3)Authoring Tools 层

    <1> 资源的打包(pack):HGE 使用 ZIP 格式的资源包,你可以使用任何的打包工具,甚至还可以给资源包加密

    <2> 纹理(Texture)工具
    <3> 粒子系统编辑器:能够设定粒子的速度,方向,生命周期,轨迹,颜色,透明等

    <4> 位图字体编辑器:运行通过系统中已经安装的字体来创建位图字体,你可以使用图形编辑器来为位图字体添加额外的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
HGE 1.8.1a Unicode Edition and Support Joystick中文的使用方法:1、现将现在的工程转换为UNICODE,否则会提示找不到hgeFont符号。2、在用到的字符串处使用宏TXT()进行字符处理(hge中自带的),也可声明如HGE_CHAR a[]={"hello"};方式使用3、不能使用现在的字体文件,我们先用Bitmap Font Generator (www.AngelCode.com)生成fnt字体,然后用本HGE中自带的bmfconv进行转换,生成本HGE能用的字体。手柄的使用方法:1、先生成一个指针类型的DIJOYSTATE结构,如:DIJOYSTATE js=new DIJOYSTATE; hge.h文件有此结构定义2、m_hge->System_SetState(HGE_USEJOYSTICK,true);进行标志位设置,设置为true为可用手柄。3、m_hge->System_SetState(HGE_JOYSTICKFUN,JoystickStateProxy,js); 其中JoystickStateProxy是指手柄的callback函数,相当于FrameFunc等,函数原型是void JoystickStateProxy();4、m_hge->System_SetState(HGE_JOYUPDATE,10);//更新手柄信息的速度,就是轮询时间,手柄事件的状态更新。5、m_hge->System_SetState(HGE_JOYEVENT,10);//触发事件的速度,也就是JoystickStateProxy这个函数的访问速度。这里是10毫秒触发一次要想看手柄的处理,请看我的博客文章:http://blog.csdn.net/zealczg/archive/2008/07/23/2695760.aspx( 游戏手柄(JoyStick)的延时处理 )声明:本程序的unicode 功能是国外的朋友实现的,并且还支持adobe的flash播放功能,我只是实现了手柄的接口,欢迎进行技术讨论!QQ:16535702,简单问题请勿骚扰!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值