飞机大战文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业实训报告
课题名称: Unity 游戏开发
专业:移动开发
班级: Rz 移动 152 学号: 201560310213
学生姓名:张博
指导教师:段菲菲
年月日
中原工学院
毕业实训任务书
摘要
摘要游戏,目前已经是最大众化的娱乐之一,而其中的3D游戏也是技术含量较高的项目之一。Unity3D是一个3D/2D游戏开发工具和游戏引擎套件,其中包括了图形、音频、物理、网络等多方面的引擎支持,并且有一个非常强大的编辑器来整合这一切,非常适合于游戏开发。
本文主要是以Unity5.3.8为开发环境,设计并开发一款单机版的三维游戏——直升机大战,旨在介绍直升机战斗游戏的实现方法,并逐步介绍使用Unity3D开发3D游戏的方法和技巧。通过这次游戏制作,使我体会到了,制作一个游戏所需要做的工作,包括前期的游戏策划,素材的制作,到后期的游戏的设计,代码实现等,最终形成一个完整的3D游戏,并通过Unity3D选择平台生成可执行文件。但本次设计的直升机战斗游戏所做工作还不够完善,开始场景中菜单比较简单,游戏中武器只有一种,关卡也只有一个,这些都需要以后进一步设计.
第1章项目分析
1.1 Unity 及其组成的介绍
本书主要讲解的是,如何使用 Unity 开发 2D 游戏。但在开始讲解之前,最好先熟悉一下Unity 这个工具。本章会首先介绍 Unity 的下载和安装,然后会介绍 Unity 界面的各组成部分,这些知识会在本书后面的章节频繁使用,所以不要掉以轻心。
1.2 Unity 概述
Unity 现如今已是非常的流行,因此在开始学习 2D 游戏开发之前,本节就来简要说明下Unity,及其下载和安装方法。 1.Unity 简介 Unity 是一款跨平台的专业游戏引擎,可以使用它轻松的开发各种 2D 和 3D 游戏,然后部署到各种游戏平台上。当然也包括这些主流游戏平台: Windows、 iOS、 Android、 Xbox 360、 PS3。
第2 章
2.1 需求分析
玩家:控制游戏中的战机,向敌机发出攻击;
敌机:敌机不会发射子弹攻击玩家,boss敌机由程序控制自动向玩家飞机发出攻击
子弹:玩家和boss 敌机都拥有自己的子弹,玩家的子弹可以用来攻击所有的敌机
子弹礼包:玩家飞机得到子弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能炸弹礼包:玩家飞机得到子弹礼包后,玩家飞机如果使用炸弹可以清除屏幕上除boss外的所有敌机。
2.2 功能需求:
1》用户进入游戏开始菜单可以选择开始游戏,退出游戏,游戏帮助;
2》进入游戏后可暂停游戏
3》玩家飞机以一定速度自下而上飞行,用户可以控制飞机前后左右移动
4》玩家飞机一直发子弹,用户通过控制飞机位置来扫描敌机;
5》不同种类的敌机以一定速度随机出现;
6》玩家飞机的发射子弹击中敌机后消失。
7》玩家飞机达到一定分数后,程序会随机提供子弹包和炸弹包;》
8》玩家与礼包碰撞后即可得到礼包;
9》弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能
10》进行游戏时,屏幕左上角会显示用户达到的分数;
2.3 用户功能需求
由于本游戏交互性好,简单易操作,对用户并没有特殊的要求。一般用户经过几分钟后就可以掌握游戏规则。
2.4 游戏性能需求
1)实时性:本应用为手机游戏对于用户操作必须做出立即响应,否则本游戏失败2)单机手机游戏最大的特点纪委已操作行,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏规则。这是本应用对于操作性的要求。
2.5 游戏流程:
如图2.5-1
第3章场景设计
3.1.创建游戏场景
1.由于创建的是2d项目,则将图片拖入Scene中,该图片自动成为一个精灵,所以将图片信息拖入摆放即可。
如图3-1-1 所示
2.下面创建一个GameManager文件,其绑定在摄像机中,主要负责飞机生命,玩家得分,背景播放等的显示功能。而生命,得分的显示需要我们创建GUIText来摆放。
public enum GameState{
Runing,
Pause
}
public class GameManager : MonoBehaviour {
public static GameManager _instance;
public int score=0;
private GUIText guiText;
public GameState gameState = GameState.Runing;
void Awake(){
_instance=this;
guiText=GameObject.FindGameObjectWithTag("ScoreGUI").GetComponent
}
// Update is called once per frame
void Update () {
guiText.text="Score:"+score;
}
public void transfromGameState(){
if(gameState==GameState.Runing){
pauseGame();
}else if(gameState==GameState.Pause){
continueGame();
}
}
3.然后我们来实现背景的滚动。首先创建两个一样的背景图片上下摆放,如下图所示,这里切换到3d 模式,更加形象
如图3-1-3
4.下面创建用于绑定在背景上的脚本BackgroundTransform,代码如下
public class BackgroundTransform : MonoBehaviour {
public static float moveSpeed = 2f;
// Update is called once per frame