1 / 16
文档名称:

2游戏引擎框架.ppt

格式:ppt   页数:16
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2游戏引擎框架.ppt

上传人:所以所以 2012/6/10 文件大小:0 KB

下载得到文件列表

2游戏引擎框架.ppt

文档介绍

文档介绍:游戏引擎
游戏分游戏引擎和游戏资源两部分。
游戏资源包括图像、声音、动画等部分
引擎则是按游戏设计的要求顺序调用这些资源。
游戏引擎是一个为运行某一类游戏的机器所设计的能够被机器识别的代码集合,它从各方面控制着游戏的运行。
游戏引擎是用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置到接受玩家的输入等。
游戏引擎框架
一个游戏基本上是一个连续的循环,完成逻辑动作,并在屏幕上显示图像,通常是每秒30帧,和影片的播放类似。
游戏引擎的框架结构
游戏引擎
游戏初始化
游戏循环
游戏结束
游戏引擎初始化
游戏参数初始化
游戏交互
游戏逻辑
资源释放
中止程序
GameEngine游戏引擎类

在GameEngin类的定义中,首先声明了类的成员变量,用于存储游戏引擎的一些重要信息,主要由两类变量组成:初始化时的参数变量、循环时所需要的变量。
静态引擎指针
程序实例句柄和窗口句柄
窗口属性相关成员
程序循环相关成员
有些特殊的函数方法不能在游戏引擎类中实现,而必须是外部函数,如WinMain、WindowProc
还有一些函数是游戏特有的,必须在设计游戏程序时,由程序开发者自行设计,如游戏参数初始化、游戏逻辑实现、游戏画面绘制等。
游戏引擎的初始化
游戏引擎的构造
游戏窗口创建
WinMain函数
定义WinMain函数
先调用游戏初始化函数创建游戏引擎,并对游戏框架进行初始化。
进入消息循环,在消息循环中使用PeekMessage来接收消息。目的是即使没有消息循环,游戏循环也会继续执行,而不是等待。
timeGetTime()函数
返回自Windows系统开机以来所经过的时间,时间单位为1ms,为DWORD类型,最大为232,。
,,所以需要: #include “”
#ment(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消息发生时,程序窗口已经销毁,程序的结束已不可逆转。此时,需要在程序完全退出前进行资源的释放。