预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第卷第期渤海大学学报自然科学版 年月趾加 基于游戏引擎的实现 门涛,伦淑娴,马欢,王晓荣 渤海大学信息科学与工程学院,辽宁锦州 摘要详细的介绍了游戏引擎的基本概念,基本的工作原理和设计方法,通过一个基 于的游戏引擎,来说明详细的设计和工作过程。实际的应用表明,本文涉及的程序实 现方便实用性强,有助于进行下一步的游戏开发,同时它能够更好的将游戏特有的代码与常 规的代码分离开。 关键词游戏引擎代码重用 中图分类号文献标识码文章编号心刃刁 引言 游戏引擎,是从设计模式角度而言的一套软件系统。可以把游戏的引擎比作赛车的引擎,引擎是赛车 的心脏,决定着赛车的性能和稳定性,赛车的速度、操纵感这些直接与车手相关的指标都是建立在引擎的 基础上的。游戏也是如此,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏的引擎直接控 制的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同时、有序地工作。 简单地说,引擎就是“用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受 玩家的输人,以及按照正确的音量输出声音等等。”〔’一般来说,无论是角色扮演游戏、即时策略游戏、冒险 解谜游戏或是动作射击游戏,哪怕是一个很小的小游戏,都有这样一段起控制作用的代码。 游戏引擎的基本原理 在常规的游戏设计过程中,针对每一个游戏都要编写许多与该游戏的细节无关的代码,这些代码 是每一个,应用程序游戏也是的应用程序所必需的,相对于通过剪切和粘贴这些 常规代码来适应每一个游戏,倒不如把这些通用代码封装起来,从而减少在剪切和粘贴过程中由于人 为操作所带来的失误,以及修改代码所带来的麻烦。与此同时,封装还带来诸多好处,如提高代码的 复用,编写游戏的效率,提高了代码的可靠性。我们把这些常规的应用程序代码的封装,同时在加上 对游戏的控制功能,就构成了游戏引擎。 游戏引擎很好的组织了游戏代码,在设计游戏引擎时,尽可能找到适用于所有游戏的公共元素, 如背景、片头字幕、背景音乐等,尤其是片头字幕,对于同一个公司开发的不同游戏,可以用同一个 片头字幕来对自己的公句进行介绍等。另外,游戏引擎还提供了对游戏各部分的控制功能,如碰撞检 测系统,输人输出的控制等〔’。所以,它为游戏开发人员带来的好处是可以向游戏引擎中添加反与 具体游戏相关的细节代码,从而使开发人员将精力集中在具体的游戏上,而不是常规代码,充分发挥 游戏发动机的功能。 收稿日期一一。 基金项目辽宁省教育厅资助人类项目。切和渤海大学博士启动基金资助。 作者简介门涛一男,渤海大学硕士研究生,从事网络人任检测研究。伦淑娴一女硕士生导师教授 博士从事人工智能,神经网络,模糊理论等教学科研工作。 渤海大学学报自然科学版第卷 游戏引擎的分析与设计 一款出色的游戏,一般都会有一个很优秀的游戏引擎,当然也不尽然。但是如果哪一款游戏用了 一款优秀的引擎的话,那么很容易基于该引擎推出续作,如公司在前一款游戏引攀的基础 上,进行改进推出全新的引擎,进而推出《》游戏。一般情况下,引攀的总体 设计流程图如 游戏引擎负责处理各种琐碎事务组建程序开始 游戏、确保它正确运行以及关闭它,游戏引 攀将游戏分解为事件,可以将游戏的初始化引攀初始化 过程视为一个事件,它负责加载游戏的图形 和声音、清空游戏的区域、将得分归为零 。,,回 等类似地游戏中还有用户输人意味着画图回困 单击鼠标和按键操作是游戏必须自己处理的圈因图 事件等。许多事件当然都可以包括在游戏引 攀之中,但是下面这些事件是指适用于任何 游戏的部分核心事件初始化、启动、结竺 图引擎工作的总体设计流程 束、激活、停用、绘制、循环川。初始化 事件在一开始运行游戏时发生,执行重要的初始设置任务,包括创建游戏引擎本身。启动和结束事件 对应与游戏的开始和结束,此时很适合执行与特定的游戏会话相关联的初始化和清理任务。在最小化 游戏或者将其发送到后台,然后再恢复时,将发送激活和停用事件。当游戏需要绘制自己时,将发送 绘制事件,类似于消息。最后,循环事件使游戏执行一个单独的游戏周期。同时,在每 一个游戏中都有一个很重要的计时机制,从而将游戏的执行分解为帧或者周期。 在流程图中,当程序开始的时候,首先初始化的是游戏引擎,以及重要的初始化设置任务,然后 游戏引擎对整个游戏进行全面的控制,包括初始化、停用、循环、重绘、碰撞检测等,其中,用户的 输人输出处理和碰撞检测可以留下空函数,由程序员根据具体的游戏细节来实现〔‘。 游戏引擎的实现 根据分析与设计,可以实现一个简单的游戏引擎类。通过该类的实现,可以看到游 戏引攀的工作机制,从而为实际的游戏开发中提供一个框架,起到一个抛砖引玉的作用。 游戏引擎类的成员变量一般会包括 ‘一指向游戏引擎的指针 一刀指向程