




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品精品 论文模板论文模板 游戏游戏 毕业设计 论文 任务书系别计算机工程系专业计算机科学与技术 学生姓名郭辉明学号25xx02106设计 论文 题目基于D ir ec t3D的Wi nd ows游戏开发起迄日期 xx年10月20日 xx年4月20日设计 论文 地点 电子科技大学中山学院指导教师 徐翔专业教研室负责人 徐翔发任 务书日期 xx年10月20日任务书填写要求1 毕业设计 论文 任务 书由指导教师根据各课题的具体情况指导学生填写 此任务书应在毕业设计 论文 开始前一周内填好并发给学生 2 任务书内容必须用黑墨水笔工整书写或按教务处统一设计的电子文 档标准格式 可从教务处网页上下载 打印 不得随便涂改或潦草 书写 禁止打印在其它纸上后剪贴 3 任务书内填写的内容 必须 和学生毕业设计 论文 完成的情况相一致 若有变更 应当经过 所在专业及系主管领导审批后方可重新填写 4 任务书内有关 系 别 专业 等名称的填写 应写中文全称 不能写数字代码 学生的 学号 要写全号 2000级为10位数 不能只写最后2位或 1位数字 5 任务书内 主要参考文献 的填写 应按照国标GB771 4 87 文后参考文献著录规则 的要求书写 不能有随意性 6 有关 年月日等日期的填写 应当按照国标GB T7408 94 数据元和交换格式 信息交换 日期和时间表示法 规定的要 求 一律用阿拉伯数字书写 如 xx年3月15日 或 xx 03 15 毕业设计 论文 任务书1 本毕业设计 论文 课题应达到的目的 设计并实现一个基于Direct3D的Windows游戏的Demo版本 该游戏能提供一个完整游戏所具有的各种元素 包含3D游戏场景 玩家角色与NPC的控制和运动 碰撞检测 背景音效等 2 本毕业设计 论文 课题任务的内容和要求 包括原始数据 技 术要求 工作要求等 1 设计游戏中的场景 包括天空盒和纹理地 形 2 设计游戏中的背景声音 包括背景声音 和角色动作声音 3 设计游戏中的下雪效果 4 设计游戏中的UI界面 5 设计游戏中的智能AI 6 设计游戏中的碰撞检测功能 7 提交设计文档毕业设计 论文 任务书3 对本毕业设计 论文 课题成果的要求 包括毕业设计 论文 图表 实物样品等 1 游 戏程序和相关设计文档 2 撰写毕业设计论文 4 主要参考文献 1 DirectX高级动画制作 Jim Adams著 刘刚译 重庆重庆大学出版社xx 2 DirectX9 03D游戏开发 编程 美 Frank D Luna著 段菲译 北京清华大学出版社 xx 3 精通DirectX3D图形 与动画程序设计 王德才杨关胜孙玉萍编著 北京人民邮电出版社 x x 4 C STL开发技术导引 叶至军编著 北京人民邮电出版社 xx 5 DirectX游戏开发终极指南 美 Allen Sherrod著 狄东宁译 北京 清华大学出版社 xx 6 DirectX实时渲 染技术详解 美 Kelly Dempski著 于忠德 吴红艳 林锋译 重庆 重庆大学出版社 xx 7 Di rectX角色扮演游戏编程 美 Jim Adams著 黄际洲 刘刚译 重庆 重庆大学出版社 xx毕业设计 论文 任务书5 本毕业设计 论文 课题工作进度计划起迄日期工作内 容xx年10月20日 xx年11月10日论文选题 论文资料收集 系统需求 模型的确立 xx年11月10日 xx年1月15日游戏软件的分析设计 游戏软件的开发 xx年1月15日 xx年3月1日系统测试 论文结构的撰写xx年3月1日 xx 年4月20日论文正文的撰写 修改 定稿 指导教师审查意见指导教师 签名 年月日I基于Direct3D的Window s游戏开发摘要随着电脑绘图技术的不断发展 3D绘图硬件效能的增 强以及宽带网络的普及 3D技术的应用也有了新的风貌 3D技术的使用非常广泛 而且使用比较普遍的可能就是在3D游戏的 制作领域 并且随着电脑硬件的不断升级和游戏开发库的功能日益强大 游戏 的真实性场景和炫丽的效果不断冲击着游戏玩的视角 DirectX是一种应用程序接口 API 它可让以windows为平台的游 戏或多媒体程序获得更高的执行效率 加强3d图形和声音效果 并 提供设计人员一个共同的硬件驱动标准 让游戏开发者不必为每一 品牌的硬件来写不同的驱动程序 也降低用户安装及设置硬件的复 杂度 本论文介绍游戏开发库DirectX相关技术 及勇者斗恶龙开发前期的策划和设计 并且较为详细介绍了游戏各 个功能的实现 目前3D技术的使用非常广泛 它已经成为各界研究 应用的主题 3 D应用发展纵然也就成为了时势所趋最热门的研究话题 也是各行业 努力的方向 它的发展主题跨及了制造设计 电子商务 动画制作 多媒体教学 虚拟现实以及游戏行业等 3D技术满足了人们在视觉上拟真的需求 目前市场上可见的3D技术 的应用包括单机游戏 网络多人联机游戏 虚拟社群 训练模拟 科学可视化 网站广告 网络商品3D显现 行动式装置 PDA或是手 机 游戏 广告动画 3D特效合成 3D动画影集或3D动画电影等 从上述的应用层面分析 3D技术一个较大的应用市场在于娱乐软件 与3D动画特效制作等 在这样一个科技迅猛发展 3D技术广泛应用的信息时代 我们的生 活每天都在发生变化 游戏业迅速发展就是其中不可忽视的一个方 面 尤其是3D技术在游戏中的运用 如今国内的游戏产业也在突飞猛进 3D游戏将是世界网络游戏的发 展趋势 因此3D技术的使用也将会变得更加普及 1 2我国游戏的现状和未来趋势游戏产业处于整个动漫游戏产业的末 端 一度被视为动漫产业的衍生产业 2000年国务院部署开展的电子游戏经营场所专项治理至今余波未消 停止审批并大力压减电子游戏经营场所数量 禁止进口电子游戏 设备及其零附件 电子游戏在中国处于极度萎缩的状况 单机版游 戏则由于猖獗的盗版问题而难以实现盈利 纵观中国游戏产业的发展现状 网络游戏依然是执牛耳者 截止到xx年6月30口 中国互联网网民人数达到了12300万人 与xx 年同期相比增长了19 4 其中宽带上网网民人数为7700万人 在 所有网民中的比例接近2 3 比xx年同期增加了2400万人 增长率 为45 3 而宽带上网的计算机数也迅速增长到2815万台 我国真 正迎来了 宽带时代 网民中网络游戏玩家超过了3000万人 xx年中国游戏产业报告显示 我国网络游戏用户的主要年龄段集中 在19 25岁 其中19 22岁的占33 3 23 25岁的占28 4 加起来超过60 对网民的上网地点分析发现 网吧已经成为网络游戏发展的重地 2根据IDC预测 xx年中国网络游戏市场规模将达到50亿元 这个数 字低于其先前的预计 网络游戏的发展强势带动了相关产业的发展 据 xx年中国游戏产 业报告 披露 xx年网络游戏对相关产业的总体贡献为319 8亿元 其中 对通信业务的直接贡献是173 4亿元 对IT产业的直接贡献 是71 6亿元 对媒体和传统出版业的直接贡献是37 1亿元 网络 游戏产业对这三个产业的贡献分别比xx年增加了22 7亿元 7 9亿 元和1 3亿元 此外 xx年网络游戏还带来了37 7亿元的游戏广告收入 xx年中国网络游戏发展中也呈现出如下特点 1 国产化比例提高 国产网游数量继续增长 据统计 目前在中国上市的200款网络游戏中 国产网游占54 5 韩国网络游戏的比例已经降低到35 7 仅从数量上看 国产网络游戏已经占据了半壁江山 这是文化部 信息产业部等有关部门积极实施民族游戏精品工程 支持鼓励民族原创游戏发展的结果 但是 国产网络游戏的质量还需要不断提高 从下载排名来看 在 名列前12位网络游戏中 国产游戏权占4席 2 休闲类游戏已成为中国网络游戏市场重要的推动力量 各种棋牌类 赛车类 益智类的绿色休闲游戏相继推出 比如 跑 跑卡丁车 疯狂赛车 连连看 等内容远远超过了一些大 型角色扮演类游戏 由于这类休闲游戏耗时短 上手容易 很快受到了国内广大用户的 欢迎 据预测 休闲游戏在未来五年内将占据整个游戏产业总收入的50 3 角色扮演类游戏本身类型也日益多样化 现在已经不是 传奇 类的打怪练级游戏的天下 体育竞技 音乐 舞蹈 航海冒险 星战幻想系列题材内容丰富的游戏也纷纷相继推 出 受到玩家的追捧 并占据了市场的主导 包括 大航海时代 星战前夜 QQ音速 等游戏的推出 有力地推动了角色扮演类游戏的结构调整 4 游戏成为潮流 从xx年底上海盛大公司宣布对旗卜 传奇 传奇世界 梦 幻国度 等三款游戏永久之后 xx年成为 网游年 xx年中国网络游戏市场上已经有超过70款永久网游 可逐渐与费网 游相抗衡 其中包括 航海世纪 魔力宝贝 等原来很受玩家欢迎的老游 戏 也有 武林外传 征途 等新游戏 1 3论文的主要工作通过论文的解释说明讲述基于DirectX的Windows 游戏设计的过程 介绍DirectX库的一些常用接口和游戏一些主要部 分的实现方法 32总体方案2 1Mi crosoftVi sualC 简介Visual C 是一个功能强大的可视化软件开发工具 自1993年Microsoft公司推出Visual C 1 0后 随着其新版本的不断问世 Visual C 已成为专业程序员进行软件开发的首选工具 虽然微软公司推出了Visual C NET Visual C 7 0 但它的应用的很大的局限性 只适用于Windows2000 Wind ows XP和Windows NT4 0 所以实际中 更多的是以Visual C 6 0为平台 Visual C 6 0不仅是一个C 编译器 而且是一个基于Windows操作系统的 可视化集成开发环境 integrated developmentenvironment IDE Visual C 6 0由许多组件组成 包括器 调试器以及程序向导AppWizard 类向导Class Wizard等开发工具 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境 Visual C 它大概可以分成三个主要的部分Developer Studio 这是一个集成开发环境 我们日常工作的99 都是在它上面 完成的 再加上它的标题赫然写着 Microsoft Visual C 所以很多人理所当然的认为 那就是Visual C 了 其实不然 虽然Developer Studio提供了一个很好的器和很多Wizard 但实际上它没有任何编 译和链接程序的功能 真正完成这些工作的幕后英雄后面会介绍 我们也知道 Developer Studio并不是专门用于VC的 它也同样用于VB VJ VID等Visual Studio家族的其他同胞兄弟 所以不要把Developer Studio当成Visual C 它充其量只是Visual C 的一个壳子而已 MFC 从理论上来讲 MFC也不是专用于Visual C Borland C C Builder和Symantec C 同样可以处理MFC 同时 用Visual C 编写代码也并不意味着一定要用MFC 只要愿意 用Visual C 来编写SDK程序 或者使用STL ATL 一样没有限制 不过 Visual C 本来就是为MFC打造的 Visual C 中的许多特征和语言扩展也是为MFC而设计的 所以用Visual C 而不用MFC就等于抛弃了Visual C 中很大的一部分功能 但是 Visual C 也不等于MFC Platform SDK 这才是Visual C 和整个Visual Studio的精华和灵魂 虽然我们很少能直接接触到它 大致说来 Platform SDK是以Microsoft C C 编译器为核心 不是Visual C 看清楚了 配合MASM 辅以其他一些工具和文档资料 上面说到Developer Studio没有编译程序的功能 那么这项工作是由谁来完成的呢 是C L 是NMAKE 和其他许许多多命令行程序 这些我们看不到的程序 才是构成Visual Studio的基石 Visual C xx 微软的VisualC xx发布版本对于有志于轻松 迅速地编写安4全可 靠的应用程序的编程爱好者来说是正确地选择 正如你所听到的那样 VisualC 中语言和库的新特点使开发安全 可靠的应用程序比以前更容易 它即提供了功能强大并且灵活的标准C 又提供了适于 NET框架下 编程的最强大的开发语言 2 2Di rectX简介DirectX是由微软公司建立的游戏编程接口 由C 编程语言实现 遵循 在Windows的平台上影响力超越OpenGL并被多数PC游戏开发商采用 最新版本DirectX9 0c xx年12月13日 另外 Windows Vista第5238版亦包含有DirectX10的Beta版 很多Windows游戏需要DirectX DirectX包含DirectGraphic DirectPlay DirectSound DirectIn put DirectSetup等部份 Direct3D与DirectDraw已整合成DirectGraphic 而DirectShow亦 已自原本的DirectX SDK中移到Windows平台SDK了 Redist Package是媒体开发底层API 通过它可以开发游戏和其它媒体应用 程序 DirectX并不是一个单纯的图形API 它是由微软公司开发的用途广 泛的API 它包含有Direct Graphics Direct3D Direct Draw Direct Input Direct Play Direct Sound Direct Show Direct Setup Direct MediaObjects等多个组件 它提供了一整套的多媒体接口方案 只是其在3D图形方面的优秀表现 让它的其它方面显得暗淡无光 DirectX开发之初是为了弥补Windows3 1系统对图形 声音处理能力 的不足 而今已发展成为对整个多媒体系统的各个方面都有决定性 影响的接口 DirectX是一组低级 应用程序编程接口 API 可为Windows程序 提供高性能的硬件加速多媒体支持 Windows支持DirectX8 0 它能增强计算机的多媒体功能 使用DirectX可访问显卡与声卡的功能 从而使程序可提供逼真的三 维 3D 图形与令人如醉如痴的音乐与声音效果 53游戏策划3 1游戏的简要介绍游戏利用一个高度图文件来形成高低 不同的地型再配以纹理图片制造出一个雪地的环境 使用了6张天空的纹理图片制作一个天空盒 天空盒的中心位置是游 戏中英雄的位置 所以天空盒相对英雄角色是静止的 加入了一个粒子系统模拟一个下雪的过程 再加上一些树的模型就 构成了游戏的场景了 游戏中的英雄角色和怪物角色的动作是使用了蒙皮骨骼动画技术 通过该技术可以随意的控制角色的动作和在动作发生的过程中产生 所需要的事件 如攻击时播放攻击的音乐 计算角色在攻击动作发 生后将自身的生命值减去伤害值 游戏中采用的了第三人称视觉 玩家在电脑屏幕上看到的画面就是 通过游戏里的摄像机拍摄出来的 摄像机会跟随英雄角色移动 也可以360度环绕英雄角色改变视觉的 位置 游戏UI使用了点精灵实现角色的状态显示栏 并加以文字描述 游戏构建了声音系统 声音系统由背景音乐 英雄角色动作音乐 还有NPC动作音乐组成 游戏给NPC设定了AI NPC可以根据情况做出不同的反应和动作 在游戏过程中 玩家可以控制英雄角色在场景中自由移动 当英雄角色进入NPC的防范距离时NPC会主动接近英雄角色 当NPC到了攻击范围时会主动攻击英雄角色 当玩家选定了要攻击的目标时 进入到攻击有效范围可就以进行攻 击 游戏会自己计算伤害然后在角色状态栏中相应显示 当NPC血量为0时会死亡随机掉出物品该物品可以回复英雄角色的血 量 当英雄角色为血量为0量也会死亡 并在数秒后显示游戏结束界 面 3 2背景和情节游戏发生在一个魔幻的世界 英雄所在的村庄受到一 条邪恶的冰龙破坏 本来小村庄里的人民过幸福的生活 但自从冰龙来了以后村庄变成 一个冰封的世界 一位青年的英雄为了解救村庄 他拿起手中的剑与冰龙还有冰龙的 手下开展了一场生死的搏斗 63 3游戏各个角色物品和各场景的素材3 3 1角色的设计游戏中的角 色如下表所示表3 1角色属性3 3 2物品的设计游戏中增加英雄体力的物品苹果如下图 所示图3 1物品苹果生命值攻击力速度外形英雄100050 7070怪物50030 5060 怪物80050 6060冰龙100070 904073 3 3场景的设计 1 游戏中的天 空盒图片前和后如下图所示图3 2天空盒图片前图3 3天空盒图片后 2 游戏中的天空盒图片右和左如下图所示图3 4天空盒图片右图3 5天空盒图片右 3 游戏中的天空盒图片上和下如下图所示图3 6天空盒图片上图3 7天空盒图片下8 4 游戏中的树模型如下图所示图3 8树模型 5 游戏中的房子模型如下图所示图3 9房子模型3 4游戏UI的设计游戏中的开始与结束界面如下图所示图3 10游戏开始界面图3 11游戏结束界面9游戏中的各角色状态栏如下图所示图3 12游戏中各角色态栏游戏中的按钮和HP血量条如下图所示图3 13按钮图3 14HP血量条104游戏设计与实现4 1游戏基本流程图4 1基本流程图4 2游戏的实现及相关概念游戏的实现主要包括了地形 的实现 天空盒的现实 UI的实现 下雪效果的实现 英雄角色及N CP模型的实现 静态模型的实现 声音系统的实现 AI的实现 碰 撞检测的实现 拾取选定的实现 4 2 1地形的实现游戏中的地形呈现出高低不同的起伏是利用了高度 图这一技术实现的 在3D游戏中坐标分为XYZ XZ表示地平面坐标Y表示海拔高度 在游戏的世界坐标系中以XYZ11 为一点来表示一个位置 高度是图其实就是一个数组 该数组的每个元素都指定了地形方格 中某一特定的顶点的高度值 我们高度图视以一个矩阵 这样高度图中的元素就与地形栅格中的 顶点一一对应 高度图有多种可能的图形表示 其中一种是灰度图 地形中某一点的海拔越高 相应地该点在灰度图中的亮度就越大 我们利用一个灰度图的资源 再加上纹理就可以创建一个地形了 下面讲述地形类GeneralTerrain的主要构成 class GeneralTerrain public GeneralTerrain int r int c float length GeneralTerrain void bool SetVertexBuffer IDirect3DDevice9 Device LPCSTR rawFileName LPCSTR texFilename float heightScale bool OneTex true void Render IDirect3DDevice9 Device float GetHeight int r int l void ComputeTriNormal MAPCUSTOMVERTEXfloat GetPositionHeight float x float z float Lerp float a float b float t void OnDestory private int num row 每列顶点数int num col 每行顶点数float uTexSize 平分后的纹理U坐标float vTexSize 平分后的纹理V坐标IDirect3DVertexBuffer9 m pVerte xBuffer IDirect3DTexture9 Dtex IDirect3DIndexBuffer9 m pInd exBuffer float length 网格宽度vectorraw 存放高度的容器 GeneralTerrain 构造函数用于初始化地形中行的点数和列的点数还有之间的距离 SetVertexBuffer用于设置地形纹理 Device是设备指针 rawFileN ame是文件路径 texFilename是纹理资源的路径 heightScale是高 度的相对比例值 OneTex是否一张纹理显示 Render用于渲染时调用 GetHeight用于得到指定的行列相交点的高度 ComputeTriNormal用于计算向点法向量 GetPositionHeight用于得到世界坐标系中的高度 Lerp用于线性插值 当程序加载了高度图和纹理之后 就可以显示在游戏中 我们在主程序中加入GeneralTerrain terrain这个变量 然后在主 程序的OnCreateDevice函数中对terrain进行初始化 在主程序的On FrameRender调用terrain的Render函数进行渲染 当游戏结果12时在主程序的OnDestroyDevice中调用terrain的OnDes tory来释放资源 而游戏中的角色和物体的高度就可以通过GetPositionHeight传入自 己在世界坐标系中的XZ坐标来得到对应的高度 从而构成3D游戏中 的三维坐标 下面讲述GeneralTerrain的渲染函数Render的实现void GeneralTerrain Render IDirect3DDevice9 Device Device SetTexture 0 Dtex 将地形纹理选入设备 Device SetStreamSource 0 m pVertexBuffer 0 sizeof MAPCUSTOMVERTEX 将地形顶点缓存选入设备 Device SetIndices m pIndexBuffer 将地形顶点索引选入设备Device SetFVF MAPCUSTOMVERTEX FVF 设置顶点格式D3DXMATRIX I D3DXMatrixIdentity Device SetTransform D3DTS WORLD 设备世界坐标系坐标Device DrawIndexedPrimitive D3DPT TRIANGLELIST 0 0 this num col this num row 0 this num col 1 this num row 1 2 渲染地形 下面讲述GeneralTerrain的渲染函数GetPositio nHeight的实现float GeneralTerrain GePositionHeight float x float z 将地图移动到原点 方便计算x float num col 1 length 2 0f x z float num row 1 length 2 0f z 将地图大小单位化 方便计算x float length z float le ngth 计算x z坐标所在的行列值float col floorf x float row floorf z 获取如下图个顶点的高度 A B C Dloat A GetHeight int row int col float B GetHeight int row int col 1 float C GetHeight int row 1 int col float D GetHeight int row 1 int col 1 float dx x col float dz z row float height 0 0f 13if dzSetSamplerState 0 D3DSAMP ADDRESSU D3DTADDRESS CLAMP 设 置世界坐标系中的坐标if pos NULL D3DXMATRIX temp D3DXMatrixIdentity Device SetTransform D3DTS WORLD else Device SetTransform D3DTS WORLD pos 加载顶点缓存 和顶点格式 关闭光源 Device SetStreamSource 0 this m pVertexBuffer 0 sizeof CUSTOMVERTEX Device SetFVF CUSTOMVERTEX FVF Device SetRenderState D3DRS LIGHTING false 循环显示天空盒中的 各个面for int i 0 iSetTexture 0 Skytex i Device DrawPrimitive D3DPT TRIANGLESTRIP i 4 2 Device SetRenderState D3DRS LIGHTING true 设置设备光源为开启 4 2 3UI的实现游戏中的UI是使用了DirectX里的一个ID3DXSprite接 口来实现的 ID3DXSprite是DriectX9 0里面的一个简单模块 在DriectX9 0帮助 文档里面对其功能的描述为 向用户提供一套简单的在屏幕上实现 精灵渲染的接口 何为精灵渲染 说白了就是渲染 画面 ID3DXSprite帮助用户透 过简单的操作就能运用DriectX9 0制作 游戏 渲染 图形 ID3DXSprite的功能还包括帮助用户在 游戏里面实现 公告牌 技术 游戏中正是利用了 公告牌 技术再配合自定制的按钮和文字系统 来实现游戏的启动界面 游戏结束界面 角色状态栏的UI界面 ID3DXSprite的使用过程一般如下 一 利用D3DXCreateSprite函数得到一个ID3DXSprite的实例对象 二 加载相关的要显示的UI纹理 三 设置显示属性 四 显示渲染UI 五 回收资源 游戏中对ID3DXSprite的使用封装了一个CSprite类 下15面来讲述 游戏中的UI类CSprite的实现class CSprite public CSprite CSprite HRESULT Init IDirect3DDevice9 pd3dDevice HRESULT LoadTexture IDirect3DDevice9 pd3dDevice UINT index LPCWSTR sthPath HRESULT Render UINT Index D3DXVECTOR2SetPosition D3DXVECTOR2 pos D3DXVECTOR2 GetPosition float SetAngle float angle float GetAngle D3DXVECTOR2SetSize D3DXVECTOR2 size D3DXVECTOR2 GetSize void OnLostDevice void Destory void SetIsRender bool isrender bool IsRender private UINT m TexIndex 当前要渲染的索引ID3DXSprite m pPicSprite 实 例指针LPDIRECT3DTEXTURE9m pTex 9 UI纹理数组float m angle 旋转角度bool m isRender 是否渲染标志D3DXVECTOR2m size 显示大小D3DXVE CTOR2m position 显示位置 Init用于得到ID3DXSprite的实例对 象 LoadTexture用于加载要显示的UISetPosition GetPosition用于设 置或得到某特定UI在游戏窗口中的二维坐标 注窗口左上角的坐标为 0 0 SetSize用于设置某特定UI的大小 当游戏加载了指定的UI图片时 就可以根据程序的需要来显示相应 的UI界面我们在主程序中加入CSprite g pBillBoard这个变量 在OnCreateDevice里new一个CSprite的实例对象并将指针传给pBill Board 调用pBillBoard的LoadTexture函数来加载UI资源 在OnResetDevice里调用pBillBoard的Init函数来实例化ID3DXSprit e对象 OnLostDevice里调用pBillBoard的OnLostDevice函数 当游戏结束 时在OnDestroyDevice里调用pBillBoard的Destory函数回收资源 主程序中添加了一个全局函数RenderUI用于渲染UI时做相关的设置 只要在OnFrameRender函数里添加RenderUI函数就可以显示相应的UI 了 下面展示出RenderUI函数的内容 说明如何显示相应的UI 下面讲述CSprite的渲染函数Render的实现HRESULT CSprite Render int Index 16 HRESULT hr 设置UI在窗口中的二维坐标D3DXMATRIX mat D3DXMatrixTransformation2D m pPicSprite SetTransform 设置启用ALPAHA通道 并渲染m pPicSprit e Begin D3DXSPRITE ALPHABLEND hr m pPicSprite Draw m pTex Index NULL NULL NULL 0 xffffffff m pPicSprite End return hr 程序添加了一个BillBoardInfo结构的全局变量用于控制UI的显 示 BillBoardInfo结构的内容如下struct BillBoardInfo BillBoardInfo herobloodPercent monsterbloo dPercent monsterbloodPercent 0 float herobloodPercent 英雄角色状态栏中血量条的当前血量显示百分比float monsterbloo dPercent 怪物角色状态栏中血量条的当前血量显示百分比float MonsterIndex 要显示的怪物状态栏索引 下面讲述主程序中的Re nderUI函数的实现void RenderUI 判游戏是否开始 如果是刚根据情况渲染角色状态栏 if g bGameStart 保存旧的坐标 角度和大小D3DXVECTOR2oldpo s D3DXVECTOR2oldsize float oldangle 防止显示的血量倒流if g billBoardInfo herobloodP ercent 0 0f g billBoardInfo herobloodPercent 0 if g billB oardInfo monsterbloodPercentIsRender 设置英雄UI oldpos g pBillBoard SetPosition oldsize g pBillBoard SetSize g pBillBoard Render 2 g pBillBoard SetPosition g pBillBoard SetSize oldpos g pBillBoard SetPosition oldsize g pBillBoa rd SetSize g pBillBoard Render 6 g pBillBoard SetPosition g pBillBoard SetSize 设置被选怪物UI if g billBoardInfo MonsterIndex 2oldsize g pBillBoar d SetSize g pBillBoard Render g billBoardInfo MonsterIndex g pBillBoard SetPosition g pBillBoard SetSize oldpos g pBillBoard SetPosition oldsize g pBillBoa rd SetSize g pBillBoard Render 6 g pBillBoard SetPosition g pBillBoard SetSize else 游戏结束界面if g bGameOver g bGameStart false g pBillBoard SetPosition g pBillBoard SetSize g pBillBoard Render 1 return 渲染
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025商场店铺租赁合同
- 2025股权转让合同参考样本
- 2025租赁合同样本「」
- 2025全面详尽的购房合同指南
- 2025私募股权合作合同
- 2025至2030中国商务会所行业市场发展分析及发展趋势与投资机会报告
- 2025-2030中国茶籽行业深度调研及投资前景预测研究报告
- 信宜市职业技术学校印刷专业设备采购项目招标文件
- 生活习俗舞蹈保护在线平台行业深度调研及发展项目商业计划书
- 2025至2031年中国旋膜热力除氧器行业投资前景及策略咨询研究报告
- 认识职业:医生
- 国际音标卡片(打印版)
- JJF1059.1测量不确定度评定培训讲演稿
- 《父亲》音乐课件
- 方案伪装防护要求
- 跨境支付中的金融稳定问题
- 2024年中石油煤层气有限责任公司招聘笔试参考题库含答案解析
- 腾讯云安全运维
- 大数据技术综合实训-实验报告
- 家委会向学校申请征订资料申请书
- 人教版八年级《竹竿舞》评课稿
评论
0/150
提交评论