【HGE引擎】API使用一些诡异现象

    鱼弦:CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen)

      

 

 HGE(Haskell Game Engine)是一个用于开发游戏的 Haskell 库。由于 HGE 是一个相对较小众的库,文献和材料的数量可能有限。以下是对 HGE 引擎的原理、底层架构和使用场景的概述:

原理解释:
        HGE 引擎的原理是基于 Haskell 编程语言构建的。Haskell 是一种函数式编程语言,具有强大的静态类型系统和高度抽象的编程范式。HGE 提供了一组函数和类型,用于处理游戏开发中的图形渲染、用户输入、物理模拟等方面的任务。通过利用 Haskell 的函数式特性,开发者可以使用 HGE 创建复杂和高性能的游戏。

使用场景解释:
        HGE 引擎适用于开发各种类型的游戏,从简单的 2D 游戏到复杂的图形和物理模拟游戏。使用 HGE,开发者可以利用 Haskell 的函数式编程能力来创建游戏逻辑、管理游戏资源、处理用户输入、进行图形渲染等。HGE 提供了一系列的函数和类型,用于处理游戏开发中的核心任务,同时也支持扩展和自定义。

文献材料链接:
        目前,我无法提供具体的文献和材料链接,因为我的知识库没有直接的访问能力。你可以尝试通过搜索引擎查找 HGE 引擎的官方文档、示例代码和相关资源。此外,参与 HGE 的开发者社区讨论也是获取文献和材料的好途径。

当前使用 HGE 引擎的产品:
        由于 HGE 是一个较小众的库,目前具体使用 HGE 引擎的产品信息可能有限。你可以尝试搜索相关的游戏或项目,或者参与 HGE 的开发者社区讨论,了解目前正在使用 HGE 引擎的产品和项目情况。

Lz在使用HGE相关引擎的api时,遇到一个第一次见过的弹出警告,下图:

 

稍微解释下:运行时 检查失败,函数调用方式不对... 知道这点就差不多了,可是该如何下手呢?

方法一:

在当前的工程下,找到 属性-> C/C++ ->高级->调用约定 处,原来是__cdecl(/Gd)就改为__stdcall(/Gd),否则,反之。这样基本能解决一些常规的问题,但是其实此次使用的针对于hge的情况却大不相同,而且会让你有挫败感...

方法二:

上述失败之后,然后,我们将针对真实的api方法调用进行追查,发现hge中的方法都是CALL宏 声明的调用方式,CALL = __stdcall,现在明白了吧,大惊失色,无论你怎么在属性里变更,好像都会失效,然后丈二和尚摸不着头脑,捉急的很,lz就尝试着将CALL直接改为__cdecl,然后,就清理一下,重新开始编译了,谁知,这个警告又再次弹出,这时瞬间懵逼了...

方法三 :

最终还是 更换引擎起的作用,新手学习还是 要对引擎安全实用比较好.

 

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,简单问题请勿骚扰!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼弦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值