HGE source explor 0x0

摘要:
本文即将开始阅读HGE游戏引擎的代码。事实上,我已经阅读了HGE的代码,我将在这里重新阅读代码。然后我们将找到HGE关于游戏窗口的部分,并了解更多信息。这里我们可以看到HGE的输入部分。创建输入事件,然后等待处理。HGE不实现自己的音频。它使用低音Dll。HGE中的工具类是基于原始引擎创建的,这是一个用于后期开发的工具。

本文准备开始HGE游戏引擎的代码阅读,其实我已经阅读完HGE的代码了,这里将准备再重新阅读代码。阅读代码将准备将代码拆开阅读,按每种功能分开来阅读,分别准备如下:

游戏的窗口

  对于任意一个程序来说,一个窗口都是必须的,所以游戏的最基本的也是一个窗口。那么我们找到HGE关于游戏窗口的部分,详细了解这部分。(窗口君:我是一切的基础哦。)

游戏的输入信息

  对于一个游戏来说,互动也是必须的,既然要互动那玩家的输入必不可少。在这里我们可以看到HGE关于输入的部分,创建输入的事件然后,当然是等处理。(输入君:你的鼠标滑向哪里啊!喂!)

游戏的资源的加载

    这个部分对于游戏来说也是必须的,因为游戏在表达图画和音乐的时候,正是这个部分在背后默默的支持着整个的资源的供给。(加载君:哼!才不是为了游戏,为了玩家你们呢!我要舔硬盘里的妹子,prpr)

游戏的图形的渲染     核心

  (DX君:轮到我的登场了!)这个部分是整个引擎最主要的部分,因为没有图形你玩个鸟啊。所以在这部分中会描述整个图像从硬盘文件到屏幕图形,让你看到图像活动起来的全过程。(加载君:哼!还不是我给的资源。DX君:你是我的心,你是我肝,你是我的3/4,怎么能少了你。)

游戏的音频系统

  对于游戏,如果没有音频那不就是聋子看到的世界么,这不是我们想创造的世界。所以,音频是必须的。HGE的音频没有自己实现,采用的bass.dll的音频库。通过调用实现自己的接口。(音频君:想听到妹子的呻吟吗?想领略交响的气势吗?所以你要实现我)

杂项

      引擎其实上面的几个模块就已经完成了,那么还剩下的杂项。对于这一部分,因为在前面的过程中会遇到这部分的帮助,所以在前面的模块中相应的提到。这部分的内容也相当重要呢!这里可以实现一些:信息的存储(HGE中是ini文件的读写);错误信息输入输入输出等;电源的信息管理(话说我不知道电源信息管理是干嘛的……);时间的掌控(中二poi),一个时间的掌握对游戏来说很重要,因为定时器等很多的事件要时间。

HGE中的工具类

      在这里中,会在原来引擎的基础上来建立工具类,也就是方便再后面进行开发的工具。(那不就是想怎么方便就做出什么工具咯。)

      接下来,分部分阅读整个代码,在这个过程中,我会按照我读代码的顺序来慢慢将这个过程可视化。1部分完成后,我们能够得到一个什么游戏需要的窗口;2部分完成,则可以在其中开始判定输入啦!在这里可以判断按键是否被按下,鼠标的移动等等;3部分的完成,貌似不能立即体现出来,但是我们仍然可以查看资源的信息等;4部分的完成,则代表这引擎基本完成了,完成这部分之后可以开始试着做些只有图形的游戏,而不考虑音频;5部分的完成,则是能够出现声音了;6部分的完成则是整个HGE游戏引擎源代码的结束了。


      作为最后的结束,也是7部分,在这里我们会看到粒子生成器,在引擎的基础上最后完成这个程序。


                           

游戏引擎模块引擎运行

图1.引擎模块

图2.引擎运行


                Let's go !

免责声明:文章转载自《HGE source explor 0x0》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何监听input的脚本赋值IntraWeb.v14.0.32安装及破解指南下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

windows server2012 nVME和网卡等驱动和不识别RAID10问题

安装2012--不识别M.2nVME,下载官方驱动程序,并将其注入没有多个驱动程序的系统--添加ITSK通用驱动程序:|Win8012R2.x64网卡驱动程序无法打开--提取官方驱动程序EXE文件以添加网卡驱动程序不识别SATARAID10--超过2T,最大Legacy为2T。...

TortoiseGit安装、配置(Git 小乌龟安装)

然后关闭5ToroiseGit。以克隆验证中心项目为例,验证TortoiseGit配置是否正确。注意:在克隆代码之前,请确保您具有相关的项目代码权限。如果您没有权限,请具有主权限的同事帮助您分配登录gitlab的权限,在本地目标下载目录中获取SSH链接地址,右键单击--˃TortoiseGit--˃克隆,然后将SSH链接地址粘贴到URL,单击“确定”确认项目...

Qt中使用定时器(可使用QObject::timerEvent定时执行,QTimer::singleShot可只触发一次)

在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器;一种是使用QTimer类。当定时器触发时,应用程序会发送一个QTimerEvent。与定时器相关的成员函数有:startTimer()、timeEvent()、killTimer()。virtualvoidQObject::timerEvent;虚函数timerEvent()被重载来实现用户的...

Debian忘记密码重置

我使用的系统是Debian8,但这种方法也适用于Debian7以上的系统。具体步骤是重新启动VPS。您可以使用“CTRL+ALT+DEL”按钮直接在面板或VNC上重新启动VPS,然后按图中的“e”按钮;在BIOS界面上,按“e”进入GRUB引导菜单,然后按“e”进入编辑;输入GRUB编辑红色框中的内容,并将“ro”替换为“rwinit=/bin/sh”;修改...

MySQL 字段类型占用空间

MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。)1或2个字节,取决于枚举值的个数SET(‘value1’,’value2’,…)1、2、3、4或者8个字节,取决于set成员的数目上表的M只是为了说明占用空间大小,在实际创建表中char、varchar,20指的是字符而不是字节;那么字符和字节的转换要看字符集,utf-8下,1字符=3...

PHP 垃圾回收机制(转)

GC进程通常从每个会话开始运行。GC的目的是在会话文件过期__destruct/unset__destruct()析构函数后自动销毁和删除它们。PHP将使用全局变量session.gc_Probability和session.gc_advisor的值session.gc_Probability=1,...