1_2游戏引擎框架.pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
游戏引擎 游戏分游戏引擎和游戏资源两部分。 游戏资源包括图像、声音、动画等部分 引擎则是按游戏设计的要求顺序调用这些资源。 游戏引擎是一个为运行某一类游戏的机器所设计的能够被机器识别的代码集合,它从各方面控制着游戏的运行。 游戏引擎是用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置到接受玩家的输入等。 游戏引擎框架 一个游戏基本上是一个连续的循环,完成逻辑动作,并在屏幕上显示图像,通常是每秒30帧,和影片的播放类似。 游戏引擎的框架结构 GameEngine游戏引擎类 GameEngine.h 在GameEngin类的定义中,首先声明了类的成员变量,用于存储游戏引擎的一些重要信息,主要由两类变量组成:初始化时的参数变量、循环时所需要的变量。 静态引擎指针 程序实例句柄和窗口句柄 窗口属性相关成员 程序循环相关成员 有些特殊的函数方法不能在游戏引擎类中实现,而必须是外部函数,如WinMain、WindowProc 还有一些函数是游戏特有的,必须在设计游戏程序时,由程序开发者自行设计,如游戏参数初始化、游戏逻辑实现、游戏画面绘制等。 游戏引擎的初始化 游戏引擎的构造 游戏窗口创建 WinMain函数 定义WinMain函数 先调用游戏初始化函数创建游戏引擎,并对游戏框架进行初始化。 进入消息循环,在消息循环中使用PeekMessage来接收消息。目的是即使没有消息循环,游戏循环也会继续执行,而不是等待。 timeGetTime()函数 返回自Windows系统开机以来所经过的时间,时间单位为1ms,为DWORD类型,最大为232,约为49.7天。 该函数在mmsystem.h中声明,在库winmm.lib中实现,所以需要: #include “mmsystem.h” #progma comment(lib,”winmm.lib”) 消息处理 与一般应用程序类似,基本都是在标准windows消息处理函数中进行处理。下面按消息功能的不同介绍: 游戏参数初始化 游戏引擎构造完成并创建窗口(产生消息WM_CREATE )后,需要进行游戏参数的初始化,包含对游戏变量的初始化、进行资源分配、从磁盘装载游戏数据(由GameStart函数完成)。 游戏画面渲染 渲染方式分两种: 在游戏循环中绘制 响应WM_PAINT时绘制 在游戏循环中绘制:可用于绘制游戏中不需要随时保持,而是随循环执行而改变的动态内容。优点:响应速度快,缺点:画面不能持久。 响应WM_PAINT时绘制是窗口程序常用的方法,这种方式有系统维护。在程序中需要进行绘图时,可调用InvalidateRect方法进行重绘。 BOOL InvalidateRect(HWND hWnd,const RECT *lpRect,BOOL bErase) hWnd是要重绘的窗口句柄;lpRect是要重绘的矩形指针,若为NULL,则重绘整个窗口; bErase表示在重绘前是否发送WM_ERASEBKGND消息,以擦除相应区域原来的内容,如果为TRUE在擦除。 注意:只是增加重绘区域,在下次WM_PAINT的时候才执行,若要立即执行,可使用UpdateWindow()。 UpdateWindow()用于向窗口发送WM_PAINT消息,在发送前会判断有无可绘制的客户区域,若没有,则不发送消息。 BOOL UpdateWindow(HWND hWnd) 游戏交互 鼠标的操作与一般windows应用程序类似,基本是单击、双击、右击和拖拽等操作,在标准消息中进行处理。 键盘消息的处理不同,游戏程序对键盘信息处理的实时性要求很高,不能依赖标准消息。 游戏暂停 游戏运行中,有时需要暂时离开游戏窗口。 在windows程序设计中,离开一个窗口而打开另一个窗口时,将使原程序窗口产生一个失去焦点消息WM_KILLFOCUS,再次回到窗口时会产生一个得到焦点消息WM_SETFOCUS。 游戏结束与资源释放 在游戏者发出退出游戏程序的指令后,会产生WM_CLOSE、WM_DESTROY、WM_QUIT. 发生WM_CLOSE消息时,程序窗口开未关闭,知识通知程序要关闭窗口了,有时,需要中止窗口的关闭,继续执行程序。 WM_DESTROY消息发生时,程序窗口已经销毁,程序的结束已不可逆转。此时,需要在程序完全退出前进行资源的释放。 游戏屏幕设置 1、DEVMODE结构 DEVMODE数据结构中包含了有关设备初始化和打印机环境的信息 dmSize 指定了DEVMODE结构的大小,以字节为单位,不包括dmDriverData(与设备有关)成员。如果应用程序仅操作数据中与驱动程序无关的部分,它就可以使用这个成员以确定该结构的长度。 dmFields 指定了DEVMODE结构的其余成员中哪些已被初始化

文档评论(0)

一天一点 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档