GingerAle团队项目设计与开发

(22页)

(此文档疑似侵权,无法预览全文,无法下载。)
'GingerAle团队项目设计与开发'
《软件工程引论》项目开发报告题目:Tricky Track 2D横版过关游戏组长学号 组员学号 组员学号 组员学号 组员学号 组员学号 指导教师 完成日期130700091307001013070025130700271307003813070044组员姓名 组员姓名 组员姓名 组员姓名 组员姓名 组员姓名陈偲祺 张骁 李君翔 关卩亦然 李芳达 马超凡杨红丽老师2016年6月20日第十八周目录1、 引言 31.1编写目的 31.2定义 31.3参考资料 32、 需求分析 32.1产品功能需求描述 32.2需求模型 42.3游戏环境 53、 产品概况 63.1主要开发人员及分工 64、 总体设计 64.1设计架构 64.2 Unity引擎介绍 74.3游戏界面设计 84.4菜单设计 85、 接口设计 125.1详细接口设计 125.2算法设计 166、 测试 197、 总结 207. 1项目总结 207.2组员小结 201、引言1.1编写目的游戏是软件开发屮特殊的一类,其目的是为了给用户提供娱乐,且涉及动画,音频,控 制等多方面,在软件工程方面是较复杂的一类工程。为明确软件需求、安排项冃规划与进度、 组织游戏开发与测试,特撰写本文档。我们用Unity引擎进行开发,由于一笔画的特点,成 品应是一个2d横版平台解谜类游戏。玩家操纵画面中的摩托车手,利用前进,抬高压低车 头的动作,以及玩家通过鼠标绘制道路使得车手到达规定的目的地。1.2定义本设计文档主要包含以下内容:需求分析、需求模型、游戏环境、类图设计、界面设计、架构设计、接口设计。1.3参考资料《构建之法 现代软件工程》邹欣 著.人民邮电出版社《软件工程概论》郑仁杰马素霞殷人昆编著.机械工业岀版社2、需求分析2.1产品功能需求描述使玩家在游戏屮体验到解谜的乐?趣。1?游戏世界为2D横版卷轴式2. 主角骑摩托车在游戏世界里单方向行驶(没有后退,朝向不变)3. 物理效果与现实类似,摩托车只能在地面行驶(不能浮空)4. 游戏世界中的场景由起点、平台、机关、终点组成5. 在一个关卡内,玩家从起点出发,抵达终点视为此关胜利6?在一个关卡内,角色(不包括摩托)被攻击型机关击中(发生碰撞)则判定死亡,视为 此关失败7. 在一个关卡内,角色(不包括摩托)与平台发生碰撞则判定死亡,视为此关失败8. 玩家可借由键盘操纵摩托的横向移动(加速和刹车)9. 玩家可借由键盘操纵摩托在空屮的旋转(顺时针和逆时针)10. 玩家可借由鼠标在游戏世界中画出轨道,被视作平台(可在其上行驶)11 .在一个关卡内,玩家画出轨道长度是有限的12.在一个关卡内,玩家只能画出一条轨道2. 2需求模型用例图:用例图由两个系统组成,菜单系统和游戏主系统。菜单系统负责设置和查看相应的游戏 内设置,游戏主系统负责渲染画面,计算物理效果,管理运行逻辑。 2. 3游戏环境采用Unity 3D引擎开发,需要在DirectXll环境下运行。 操作系统:Windows® 7 / Windows® 8 / Windows® 10最低配置:处理器:Intel® Core? i3显 卡:Intel® HD Graphics 4000内存:512MB RAM推荐配置:内存:1GB RAM3、 产品概况名为Tricky Track的2D横版过关类游戏,由小组人员独立完成。其中音乐是由我小组 郑亦然独立创作并录制。3.1主要开发人员及分工组长:陈偲祺架构设计:张骁郑亦然关卡设计:李君翔主程序实现:张骁李君翔郑亦然辅助程序实现:陈偲祺 李芳达 马超凡文档编写:陈偲祺 张骁 李芳达 马超凡4、 总体设计4.1设计架构整个设计架构采用面向对象的设计架构。人物,画出的轨迹以及每个不同的道具都有自 己的实体。我们将不同类型的物体分别封装成一个类。由于我们使用Unity开发,所以使用了多个Unity内建类,在此只详细列出自定义类的 详细成员和类型,而内建类则省略。(内建类包括但不限于GameObject, Ri gidbody 2D, Col 1 ider2D, MonoBehaviour, Vector3, AudioCi ip)类图如下:图4.1游戏类图设计4. 2 Unity引擎介绍在本项目的开发中,我们使用了 Unity引擎,借助其提供的2D物理效果完成了游戏的 主要部分。由于Unity的运行是不断循环的过程,而用户定义的部分也只是这个循坏的一部 分,所以单从用户定义的代码(主要以类的形式作为一个组件挂载到物体上)方面并不能按 照白顶向下的逻辑来理解。用户定义的代码无一例外地都是从MonoBchaviour继承而来,这 在创建代码时就已由Unity决定了,而且只有继承自MonoBehaviour的代码才会在Unity 的循环中被执行。MonoBehaviour作为一个父类内置了各种各样的变量,用来对应一个(绑 定了这个自定义脚本的)物体的其他类型的组件,比如:MonoBehaviour里面的collider 就是对应物体的碰撞体组件,transform就是对应物体的变换组件,当然如果该物体没有在 Unity的编辑器屮添加过这些组件,那么这些组件返冋的就是空。这些组件本质上都是类 (Component类的子类),它们都有着不同的变量和函数,用来实现多种功能,比如: transform类里的position (Vector3类型的变量)属性储存的是物体的位置,直接改变它 对以改变物体的位置,同时,transform类里的Translate函数也"J以达到相同的效果。而 transform类里的rotation(四元数类型的变量)属性可以用来控制物体的旋转,同时, transform类里的Rotate函数也可以达到相同的效果。如前所述,Unity的运行是不断循环的过程,所以用户定义的部分也是这个循环的一部 分,而将用户定义的部分添加到循环屮的方法就是重写MonoBehavior这个父类当屮的 Update()方法。该方法会在每一次Unity的循坏中被调用一次,所有继承自MonoBehavior 并且被挂载在物体上的脚本都会被添加进这个循环,并在每一次循环中执行一次自己的 Update()方法。所以如果在脚本中的Update()函数里编写了 Translated, 0, 0)这条指令, 那么绑定该脚本的物体就会在每一次循坏都向x轴正方向移动1单位的距离。除T Update ()夕F, MonoBehavior中还有很多函数也会在Unity的循环中被调用,在 我们的项目中用到的主要有 FixedUpdate () , Start ( ) , OnCo 11 i s i onEn
关 键 词:
GingerAle 团队 项目 设计 开发
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:GingerAle团队项目设计与开发
链接地址: https://www.wenku365.com/p-43445524.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开