设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
愤怒的小鸟游戏AngryBirds(Seasons) 软件设计说明书
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

AngryBirds(Seasons) 软件设计说明书

1 总体设计

1.1 模块组成

1.2 模块结构说明

游戏分为可供玩家操控的游戏模块和不可被玩家操控的游戏后台管理板块组成,这两个模块在游戏软件打开的时候,就开始一同工作,密不可分。

2 程序描述

2.1 游戏后台管理模块

2.1.1 功能

实现游戏的全自动化管理,让游戏在不被外界干扰的情况下自行运转和调整。

2.1.2 输入项目

鼠标点击按钮

2.1.3 输出项目

游戏按逻辑正常进行;游戏页面跳转;游戏功能键按键反馈;界面更新;

2.1.4 算法

(1) 游戏的初始化操作

(2) 游戏逻辑的实现

(3) 游戏功能键的设置

(4) 游戏的数据存储

2.1.5 代码

GameManager.cs变量申明

下面是游戏的初始化:

GameManager.cs初始化

下面是具体游戏逻辑实现:

GameManager.cs游戏逻辑

下图是游戏功能键的设置:

GameManager.cs功能键设置

按钮添加GameManager.cs功能键函数

下图是游戏数据存储:

GameManager.cs游戏数据存储

2.2 游戏模块

2.2.1 功能

(1) 控制小鸟的物理组件

(2) 控制相机追随小鸟移动

(3) 控制猪和建筑物的物理组件

(4) 控制猪和建筑物的受伤或死亡状态

(5) 用鼠标控制小鸟技能的释放

(6) 控制场景与关卡的开启和关闭

2.2.2 输入项目

鼠标的点击和拖拽

2.2.3 输出项目

小鸟位置的改变;小鸟图片的更改;猪和建筑物位置的改变;猪和建筑物的图片更改;得分方式的反馈;按钮反馈;音效反馈

2.2.4 算法

(1) 采用OnMouseDown()和OnMouseUp()来控制鼠标行为

(2) 运用动量守恒定律与collision.relativeVelocity()碰撞组件完成碰撞检测

(3) 采用前驱法完成对场景和关卡的开启判断

(4) 利用Bird.cs中的虚方法ShowSkill(),方便进行重载和继承,完成小鸟技能的实现

2.2.5 程序逻辑

2.2.6 代码

Bird.cs鼠标控制

下图是相机追随小鸟移动的部分:

图5.9 Bird.cs相机移动

下图是碰撞检测和死亡处理部分:

Pig.cs碰撞检测和死亡处理

下图是场景与关卡开启部分:

LevelSelect.cs场景与关卡开启

Bird.cs中ShowSkill()的声明

YellowBird.cs中ShowSkill()的重写

GreenBird.cs中ShowSkill()的重写

OrangeBird.cs中ShowSkill()的重写

Circle Collider 2D的注意事项

BlackBird.cs中ShowSkill()的重写

3 系统数据结构设计

3.1 逻辑结构设计

(1) 小鸟状态

(2) 猪和建筑物状态

(3) 场景与关卡选择

(4) 游戏后台管理

3.2 逻辑结构设计

此游戏并未涉及到负载的数据结构,唯一重点在于场景与关卡的存储以及过关数据的保留和场景与关卡之间的跳转。

由于Unity的本地持久化类PlayerPrefs包含类似于Hash一样的键值对存储,所以合理利用内置的数据结构可以高效的完成设计目的。

存储:本地持久化类PlayerPrefs在存储方面有两个方法。

(1) PlayerPrefs.SetInt("string",int num)

通过键值对存储该关卡的星星数量,具体方式为PlayerPrefs在内部存储空间申请一个空间,并命名为“string”,然后在该空间内部存储整形数据num,表示该关卡的星星数量。

(2) PlayerPrefs.SetString("nowLevel", levelNum);

通过键值对存储玩家需要打开的关卡编号,具体方式为PlayerPrefs在内部存储空间申请一个空间,并命名为“nowLevel”,然后在该空间内部存储字符串类型数据levelNum,表示玩家需要打开的关卡编号。

访问:本地持久化类PlayerPrefs在获取方面有两个方法。

(1) PlayerPrefs.GetInt(string);

通过键值对获取该关卡的星星数量,具体方式为PlayerPrefs在内部存储空间访问命名为“string”的存储空间,然后取出在该空间内部存储整形数据num。

(2) PlayerPrefs. GetString("nowLevel");

通过键值对获取玩家需要打开的关卡编号,具体方式为PlayerPrefs在内部存储空间访问命名为“nowLevel”的存储单元,然后获取在该空间内部存储字符串类型数据levelNum。

下面为具体使用案例:

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
中文PLC、工业PC与DCS的特 基于面向服务架构的高校宿舍微信小 自动水果采摘机:机器人苹果收割机
评估AlSiTiN和AlSiCr 基于人工智能的智能语音识别系统设 大数据舆情分析系统的设计与实现
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!