开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天,点击查看活动详情
上一次我们说了游戏添加分数功能,今天我们说说游戏结束。
1. 在assets文件夹下新建一个场景,并且命名为over。
(1) 在Canvas下新建一个Sprite(精灵),并且命名为bg
(2) bg的大小设置为720 * 1280。并且关联之前的背景图
(3)新建一个Label,并且命名为score
(4)设置score的位置和大小,String设置为Score:0
(5)添加一个按钮,并且命名为restart
(6) 关联按钮背景图
(7)调整按钮大小。选择按钮类型
(8)在script文件夹下新建一个脚本文件,并且命名为gameOver
(9)将脚本gameOver.ts挂载到Canvas下
(10)添加重新开始的函数
import { _decorator, Component, Node, director } from 'cc';
import { global } from './global';
const { ccclass, property } = _decorator;
@ccclass('gameOver')
export class gameOver extends Component {
onClicked(event:Event,cutom:string){
director.loadScene("menu")
global.SCORE=0; //重置分数
}
}
(11)在restart重玩按钮添加点击事件,并眀绑定到gameOver.ts脚本上的onClicked函数上
2. 打开enemyBullet.ts脚本
(1)在onBeginContact函数里增加游戏结束的判断
if(otherCollider.getComponent(play).planeBlood <=0){
director.loadScene("over")
}
(2)同样在enemy.ts脚本也要做相同的操作。也是要onBeginContact函数里增加游戏结束的判断
if(otherCollider.getComponent(play).planeBlood <=0){
director.loadScene("over")
}
3. 在游戏结束页面显示分数,打开gameOver.ts脚本,增加onLoad函数
onLoad(){
find("Canvas/score").getComponent(Label).string="Score"+global.SCORE.toString();
}
4. 接下来说说游戏声音方面的东西
(1)在assets下新建文件夹sound,主要用来存放音频文件
(2)打开常驻节点PersistNode,添加audio组件
(3)关联背景音乐,并且设置为循环播放模式
(4)打开persistNode.ts脚本,添加声音方面的装饰器
@property(AudioClip)
bulletAudioClip:AudioClip=null; //普通子弹声音
@property(AudioClip)
lightAudioClip:AudioClip=null; //激光子弹声音
@property(AudioClip)
missileAudioClip:AudioClip=null; //导弹子弹声音
@property(AudioClip)
boomAudioClip:AudioClip=null; //敌机爆炸声音
@property(AudioClip)
gameOverAudioClip:AudioClip=null; //游戏结束声音
(5)打开常驻节点persistNode。分别关联普通子弹,激光子弹,导弹子弹,敌机爆炸,游戏结束的声音。
今天就到这里了,主要说了声音方面的东西。下次我们继续完善。可能写的过程中还有很多不好的地方,希望大家能指出来,在此,谢谢大家