专题11基本游戏场景建立.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
专题11基本游戏场景建立.ppt

抛砖引玉 大家认为近四年全世界最流行、最挣钱的游戏是什么呢? 魔兽世界需要哪些模块? 模块划分 按照大家学习的知识,如果我们现在开发一款《魔兽世界——东软崛起》,首先开发哪些模块呢? 系统内核,System Core 图形内核,Graphics Core 输入内核,Input Core 声音内核,Sound Core 网络内核,Network Core 人工智能,AI 如果你掌握了这些知识…… 系统内核 图形内核 输入内核 声音内核 网络内核 人工智能 麻雀虽小,五脏俱全 系统内核:用于处理Windows处理过程,包括注册窗口类,创建应用程序窗口以及处理进程、状态和数据包。 图形内核:用于绘制图形。使用2D方法快速绘制图像或者使用动画网格之类的3D方法渲染场景。 输入内核:处理来自于键盘、鼠标的用户输入。 声音内核:让用户享受立体声的声音和音乐。此内核能够改变乐器声音。 网络内核:此内核讲客户机连接到网络以及服务器。使用此内核,就能够畅游网络。 麻雀虽小,五脏俱全 系统内核:用于处理Windows处理过程,包括注册窗口类,创建应用程序窗口以及处理进程、状态和数据包。 图形内核:用于绘制图形。使用2D方法快速绘制图像或者使用动画网格之类的3D方法渲染场景。 输入内核:处理来自于键盘、鼠标的用户输入。 声音内核:让用户享受立体声的声音和音乐。此内核能够改变乐器声音。 网络内核:此内核讲客户机连接到网络以及服务器。使用此内核,就能够畅游网络。 麻雀虽小,五脏俱全 系统内核 cApp::cApplication 使用cStateManager处理状态 图形内核组件 输入内核组件 声音内核 系统内核 class cApplication { // 与进程实例相关的成员 // 与窗口相关的成员 // 缺省的消息处理函数 // 游戏运行中的自定义函数 } 派生自己的应用程序类 class cApp : public cApplication { private: char * m_Name; public: cApp(); // Overridden functions BOOL Init(); BOOL Shutdown(); BOOL Frame(); }; 三个关键的函数 class cApplication { // 略…… virtual BOOL Init() { return TRUE; } virtual BOOL Shutdown() { return TRUE; } virtual BOOL Frame() { return TRUE; } }; 状态管理器cStateManger的声明 状态管理器cStateManger的定义 有限状态机的使用 class cApp : public cApplication { private: cStateManager m_StateManager; // 状态函数原型 static void Function1(void *, long); static void Function2(void *, long); public: bool Init() {m_StateManager.Push(Function1, this);} } 有限状态机的使用 void cApp::Function1(void *DataPtr, long Purpose) { // 获取一个指向待调用的类的指针,因此此函数是静态的 cApp *cc = (cApp*) DataPtr; if (Purpose == INITPURPOSE) { cc-m_StateManager.Push(Function2, cc); } else if (Purpose == FRAMEPURPOSE) { cc-m_StateManager.Pop(cc); } } 有限状态机的使用 void cApp::Function2(void *DataPtr, long Purpose) { cApp *cc = (cApp*) DataPtr; if (Purpose == FRAMEPURPOSE) { cc-m_StateManager.Pop(cc); } } 图形内核 输入内核 使用两个简单的类:cInput和cInputDevice产生设备输入。cInput类用来初始化DirectInput,而cInputDevice用来包含一个DirectInput设备接口对象。如果要使用多个设备,需要对每个设备使用单独的cInputDevice。 使用cInpu

文档评论(0)

dmz158 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档