- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- redhat iptables详解.pptx
- RF9802型智能电量测量仪与智能电参数测试仪价格.docx
- RFID和移动终端相结合的SMAP技术.doc
- RG-S5750-S系列安全智能万兆交换机产品(V1.2).doc
- rheonik流量计与HWF系列热式气体质量流量计价格.docx
- Role of Multiple MicroRNAs in the Sexually Dimorphic Expression.ppt
- S2002黑白激光打印机与办公打印一体机价格.docx
- S7-400PLC硬件(西门子s7-300授课资料,拿来大家共享!).ppt
- SANGFOR VPN_产品简介.pptx
- SANGFOR_SSL VPN_V4.3_产品宣讲PPT.ppt
最近下载
- 教师专业标准试题(5篇) .pdf VIP
- 2024发展新质生产力阶段下新能源行业人才解构报告.pptx
- 《工程制图》期末考试试卷附答案.pdf VIP
- 干阑建筑.ppt
- 云南农业大学2022-2023学年第2学期《生物化学》期末考试试卷(A卷)附参考答案.docx
- 《追风筝的人》书籍分享【优质公开课】精品PPT课件模板.pptx
- 23CJ87-1 采光、通风、消防排烟天窗(一)(1).pdf
- 干阑式建筑课件.ppt
- 河北开放大学《财会法规与职业道德》形成性考核一(1-3单元)-100分.doc VIP
- 2023年东华理工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
文档评论(0)