- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3D射击游戏 设计文档
3D射击游戏项目论文
TOC \o 1-2 \h \z \u HYPERLINK \l _Toc295315667 3D射击游戏项目论文 PAGEREF _Toc295315667 \h 1
HYPERLINK \l _Toc295315668 一、项目背景 PAGEREF _Toc295315668 \h 3
HYPERLINK \l _Toc295315669 二、项目目的及主要内容 PAGEREF _Toc295315669 \h 3
HYPERLINK \l _Toc295315670 三、主要类图 PAGEREF _Toc295315670 \h 4
HYPERLINK \l _Toc295315671 四、系统用例及分析 PAGEREF _Toc295315671 \h 4
HYPERLINK \l _Toc295315672 五、系统分析与设计 PAGEREF _Toc295315672 \h 5
HYPERLINK \l _Toc295315673 六、主要负责部分 PAGEREF _Toc295315673 \h 6
HYPERLINK \l _Toc295315674 七、参考资料 PAGEREF _Toc295315674 \h 11
一、项目背景
随着计算机硬件的急速发展以及3D技术的兴起,2D游戏已经不能引起玩家的兴趣,3D游戏已经成为趋势。现在很多3D游戏很具有娱乐性,但是其操作复杂,使玩家将娱乐变成一种竞技,因此,本论文致力于开发一款高娱乐性,且操作简单的3D游戏。其特点为:
1、游戏的场景为模拟现实的3D场景,具有碰撞检测,从而实现高度真实感,使玩家容易融入游戏之中。
2、游戏操作简单,鼠标左键射击,鼠标控制准星,键盘控制人物。
3、游戏玩家为普通大众,无年龄,技术等要求。
二、项目目的及主要内容
本项目的目的为建立至少一个3D游戏场景,加载人物模型,是玩家能控制游戏中的一个角色与计算机控制是机器人进行火拼,玩家可以切换武器(同时携带冲锋枪及手枪)。游戏模拟一种真实的战斗场面,使玩家有身临其境的感觉。
1、游戏场景的创建。使用OpenGL绘制3D场景,至少创建一个,如果有多个则可供玩家选择。
2、人物模型的控制。游戏模型分为MDL和MD2两种格式。玩家使用的角色为MDL格式的骨骼模型,该模型具有高仿真性。机器人为MD2格式模型,该模型不具有MDL格式的高仿真性,但因其格式规范,便于统一控制。
3、游戏为了具有高度真实性,应实现碰撞检测,包括(任务与场景边界、障碍物的碰撞检测,子弹与人物的碰撞检测,子弹与场景边界的碰撞检测),检测到碰撞后应产生一定效果。
三、主要类图
本项目采用面向对象的方法开发,为达到项目目标,项目使用了多个类,主要类图如下:
图一、类图
四、系统用例及分析
玩家是本项目的参与者,玩家在游戏中可以实现漫游,射击,添加机器人等操作,也可以修改游戏设置,如游戏角色持枪方式(左手持枪或右手持枪),游戏中机器人最大数,鼠标的灵敏度等。用例图如下:
图二、用例图
五、系统分析与设计
系统可划分为:基础框架模块,模型控制模块,碰撞检测模块。结构图如下:
射击游戏
射击游戏
基础框架
场景
绘制
摄像机
控制
碰撞检测
模型
与
场景
子弹与
场景
子弹与
模型
模型控制
机器人
的控制
玩家角色控制
游戏菜单
图三、系统模块图
六、主要负责部分
在本项目中,我主要负责三维场景搭建,模型载入与控制,游戏菜单及游戏设置部分。
三维场景搭建
本游戏场景如图所示:①
①
④
⑤
②
①
③
④
③
⑤
⑤
⑤
⑤
⑤
图四、场景简图
图例:
①小房间
②大房间
③集装箱1
④集装箱2 两种集装箱大小高度均不同
⑤木箱
注释:图中所有物体均在同一平面,只有③上面的两个④是放在③上面的。
基本思路:将场景绘制封装成类,该类通过Init()函数调用纹理贴图类的成员函数,将绘制场景所需的所有位图载入并生成纹理ID。使用OpenGL库中绘制平面的函数绘制所有物体,并贴上相应的纹理。在绘制场景的时候把所有物体的底面定点坐标以及物体高度保存为文件,用于以后的碰撞检测。
场景搭建及与场景相关碰撞检测封装为类,其主要成员函数有:
Void Init(); //载入绘制场景需要的位图
Void DrawLongBox(float xPos, float yPos, float zPos); //绘制集装1
Void DrawLongBox1(float xPos, float yPos, float zPos); //绘制集装箱2
V
文档评论(0)