【HGE引擎】源码解析——枚举(一)

本文主要介绍和分析HGE开源引擎hge.h文件的使用技巧和诸多方面学习

一 系统层API

  • 通常我们开始写一个简单的hge例子,基本都会包含这个hge.h文件,这个文件是干嘛的呢?
    它就是众矢之的,系统层API,这里面声明了程序调用方式_stdcall,之前的一篇博客,对于调用方式有所提及(有问题可以参考下,但不包百分百有效><),源码中使用宏CALL来声明每个方法的调用方式,如果你的程序打印出来的log中找到问题原因所在,这个很重要,能让你绕过很多百度谷歌去搜索解决方法,直接命中要害,这个文件很多cpp和.h都有用到,都是实现里面的api方法。

二 枚举的使用

  • 源码前250行,将平常使用的一般性结构都囊括其中,首先hgeBoolState,是HGE系统状态参数,我们一般会用创建好的hge指针调用System_SetState这个重载方法设置,第一个参数常常是所谓的系统状态参数,其次是所要设置的值等等

    以下的这些状态都是在System_Initiate之前设置的,都必须设置之后,才能初始化完成,但必须先有软硬件的创建。次序:hge_Create -> System_SetState ->System_Initiate 比如,
    【HGE引擎】源码解析——枚举(一)_第1张图片

    1.1 HGE_WINDOWED 是指的是 窗口模式,是否设置为全屏;
    1.2 HGE_ZBUFFER 是否设置使用帧缓存
    1.3 HGE_TEXTUREFILTER 是否进行问题过滤
    1.4 HGE_USESOUND 是否设置音效为低音模式
    1.5 HGE_DONTSUSPEND 失去焦点是继续运行(不中断主流程的回调)
    1.6 HGE_HIDEMOUSE 是否需要隐藏鼠标,一般我会设置为false的,没有鼠标出现总是觉得怪怪的
    1.7 HGE_SHOWSPLASH 是否设置显示HGE引擎的图标
    1.8 HGEBOOLSTATE_FORCE_DWORD 这个没怎么用到,但是从设计者的角度想,应该是作为一个非法值使用,当前的所有状态不能超过它的值,超过即是非法

其次,引擎的hgeFuncState回调枚举,调用次序:System_Initiate->hgeFuncState->System_Start
【HGE引擎】源码解析——枚举(一)_第2张图片

   2.1 HGE_FRAMEFUNC 设置帧 回调,这是必须设置的,不然 没法正常启动,回调函数返回true就是结束了,即使只是写个“空回调”,也会能够跑个正常的,必须带返回值,一般加一个结束命令即可完成一个test,游戏主循环调用就靠它了。         
   不得不说,设计者早就提醒过开发者了,这是必须这样做的。【you MUST set this】        HGE_FRAMEFUNC      = 8,
   // bool*()   frame function      (default: NULL) (you MUST set this)

   2.2 HGE_RENDERFUNC 设置游戏渲染的回调,渲染之前首先要对帧回调设置,绘图->渲染
   2.3 HGE_FOCUSLOSTFUNC 设置焦点丢失回调,程序意外的激活需要重新对此进行处理(如有其他情况,在进行补充)
   2.4 HGE_FOCUSGAINFUNC 设置重新聚焦处理,程序意外的激活需要重新对此进行处理(如有其他情况,在进行补充)
   2.5 HGE_GFXRESTOREFUNC 设置渲染重置
   2.6 HGE_EXITFUNC 设置窗口关闭回调,如果回调中有设置某个快捷键进行退出,则窗口关闭,反之不起作用
   2.7 HGEFUNCSTATE_FORCE_DWORD 同上,枚举最大值

第三,hgeHwndState枚举类型,使用次序:System_Initiate->hgeHwndState->System_Shutdown
【HGE引擎】源码解析——枚举(一)_第3张图片

     3.1 HGE_HWND 只读的,一般会作用回调,否则,才返回一个DWORD 无符号32位的整形值
     3.2 HGE_HWNDPARENT (使用次序:System_Initiate之前) 需要用到子窗口,则得先拿到父窗口的窗体值进行设置绑定
     3.3 HGEFUNCSTATE_FORCE_DWORD 同上,枚举最大值

第四,hgeIntState 整形枚举数值设置,使用次序:hge_Create->hgeIntState->System_Initiate
【HGE引擎】源码解析——枚举(一)_第4张图片

     4.1 HGE_SCREENWIDTH 设置窗体宽度
     4.2 HGE_SCREENHEIGHT 设置窗体高度
     4.3 HGE_SCREENBPP 设置色深,分16和32, 一般建议2D使用32
     4.4 HGE_SAMPLERATE 设置声音采样率,默认是44100
     4.5 HGE_FXVOLUME 设置环绕音量,默认100(如有其他情况,在进行补充)
     4.6 HGE_MUSVOLUME 设置全局环绕音量,默认100(如有其他情况,在进行补充)
     4.7 HGE_STREAMVOLUME 设置全局环绕音量,默认100(如有其他情况,在进行补充)
     4.8 HGE_FPS 设置屏幕刷新率,默认使用HGEFPS_UNLIMITED,HGEFPS_UNLIMITED(无限制)和HGEFPS_VSYNC(垂直同步)
     4.9 HGE_POWERSTATUS 设置电源状态,有百分比和状态
     4.10 HGEFUNCSTATE_FORCE_DWORD 同上,枚举最大值

第五,hgeStringState
字符串枚举,调用次序:hge_Create->hgeIntState->System_Initiate
【HGE引擎】源码解析——枚举(一)_第5张图片

     5.1 HGE_ICON 设置窗口资源图标
     5.2 HGE_TITLE 设置窗口标题 
     5.3 HGE_INIFILE 设置ini文件,默认No
     5.4 HGE_LOGFILE 设置程序运行的日志文件,可以反映出当前程序运行情况,表现报错或者当前电脑配置信息,默认No
     5.5 HGEFUNCSTATE_FORCE_DWORD 同上,枚举最大值

– 未完待续

你可能感兴趣的:(游戏引擎,HGE引擎入门修行到实践,api,源码,hge,开源引擎)