游戏引擎课程设计
设计题目飞机大战游戏课程设计学院名称信息科学与技术学院
专业名称数字媒体技术
学生姓名罗瑞佳
学生学号201413050133
任课教师林杰
设计(论文)成绩
教务处制
2015年12月29日
飞机大战游戏课程设计
摘要
本飞机大战游戏采用2D游戏显示界面,于Unity3D的游戏引擎相结合而制作完成的游戏,使用的代码是c#语言,游玩时采用第三人称视角,用键盘操作,背景界面和UI采用星球大战的画面模式。
采用计分系统来统计玩家的成就,使游戏更具可玩性。
关键词:2D;粒子效果;碰撞检测
第一章游戏的素材准备
1.1 制作该游戏需要设置飞机、敌人和子弹的模型,还有
游戏音效,游戏贴图素材,以及游戏场景的构思和搭建等。
1.2进行搭建场景时分为:
1)进入游戏的界面搭建
2) 游戏加载的界面搭建
3)游戏主界面搭建
4)游戏结束的界面搭建
5)游戏菜单的界面搭建
第二章进行飞机的功能操作
2.1 飞机模型的创建及移动功能的实现
2.2 飞机发射子弹的创建
1)飞机子弹的基本功能
2)飞机子弹发射时的音效实现
2.3敌人的创建
2.4子弹与敌人的碰撞检测
2.5子弹飞机的爆炸效果
2.6玩家生命值和分数的设定
1)玩家的死亡
2)玩家输游戏场景的设定
3)玩家赢游戏场景的设定
第三章背景设置
3.1 修改输赢场景的背景
3.2滚动背景的搭建修改
3.3修改敌人和玩家的外形
3.4关于玩家飞船的重生
3.5游戏难度的设定
四重要代码
4.1关于粒子碰撞检测的代码
#pragma strict
varpowerUpSound : GameObject;
function Start () {
}
function Update () {
}
function OnTriggerEnter(col:Collider)//碰撞检测
{
if(col.gameObject.tag == "Player")
{
GameObject.Find("player").GetComponent(FireScript).PowerUpLaser(); Instantiate(powerUpSound,transform.position,transform.rotation); Destroy(gameObject);
}
}
4.2关于爆炸效果的代码
#pragma strict
var explosion : GameObject;//爆炸粒子系统链接
varexplosionSound : GameObject;////爆炸声音链接
var points :int;
varpointsGui:GameObject;//加分
function Start () {
}
function Update () {
}
function OnTriggerEnter(col:Collider)//碰撞检测
{
if(col.gameObject.tag == "Laser")//检测玩家激光是否与敌人发生碰撞 {
GameController.totalEnemies-=1;
GameController.score +=points;
Drop();
varviewporPos :Vector3 =Camera.main.WorldToViewportPoint(transform.position);
Instantiate(explosion,transform.position,transform.rotation);//播放爆炸粒子系统的效果
Instantiate(explosionSound,transform.position,transform.rotation);//
播放爆炸的声音
Instantiate(pointsGui,Vector3(viewporPos.x,viewporPos.y,0),transform. rotation);//产生加分数字
Destroy(col.gameObject);//摧毁碰撞对象(玩家)
Destroy(gameObject);////摧毁粒子系统
}
}
function Drop()
{
if(Random.Range(0,20)<10)
{
Instantiate(GameController.powerUp,transform.position,transform.rotat ion);
}
}
五游戏界面截图。