You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.2 KiB
71 lines
2.2 KiB
import { _decorator, Component, Node, sp } from 'cc';
|
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
export enum BossWarnType{
|
|
/** boss警告 */
|
|
Boss = 0,
|
|
/** 中期boss警告 */
|
|
MidBoss = 1,
|
|
/**最后一波警告 */
|
|
LastWave = 2,
|
|
/**大波怪物来袭警告 */
|
|
LargeWave = 3,
|
|
/**空降兵 */
|
|
Paratroops = 4,
|
|
/**开场 */
|
|
StartBattle = 5,
|
|
}
|
|
@ccclass('BossWarnSpine')
|
|
export class BossWarnSpine extends Component {
|
|
@property({type: [Node]})
|
|
spineNode: Node[] = []
|
|
|
|
start() {
|
|
|
|
}
|
|
|
|
/** 播放警告动画 */
|
|
playWarnAnim(warnType: BossWarnType){
|
|
if(warnType == BossWarnType.Boss){
|
|
gg.audio.playEffect({ name: "BOSS来袭提示" ,path:"sound/怪物来袭/"});
|
|
}else if(warnType == BossWarnType.MidBoss){
|
|
gg.audio.playEffect({ name: "精英怪来袭" ,path:"sound/怪物来袭/"});
|
|
}else if(warnType == BossWarnType.LastWave){
|
|
gg.audio.playEffect({ name: "最后一波" ,path:"sound/怪物来袭/"});
|
|
}else if(warnType == BossWarnType.LargeWave){
|
|
gg.audio.playEffect({ name: "最后一波" ,path:"sound/怪物来袭/"});
|
|
}else if(warnType == BossWarnType.Paratroops){
|
|
gg.audio.playEffect({ name: "紧急" ,path:"sound/怪物来袭/"});
|
|
}else if(warnType == BossWarnType.StartBattle){
|
|
gg.audio.playEffect({ name: "最后一波" ,path:"sound/怪物来袭/"});
|
|
}
|
|
let spineNode = this.spineNode[warnType]
|
|
|
|
if(!spineNode){
|
|
return
|
|
}else{
|
|
spineNode.active = true
|
|
}
|
|
let spine = spineNode.getComponent(sp.Skeleton)
|
|
spine.setCompleteListener(()=>{
|
|
spine.setCompleteListener(null);
|
|
spineNode.destroy();
|
|
this.node.destroy();
|
|
})
|
|
// this.playSpine(spine,()=>{
|
|
// this.node.destroy()
|
|
// })
|
|
}
|
|
public playSpine(spine: sp.Skeleton, callback: Function = null, timeScale = 1, loop = false) {
|
|
spine.setCompleteListener(() => {
|
|
spine.setCompleteListener(null);
|
|
if (callback) callback();
|
|
});
|
|
spine.timeScale = timeScale
|
|
let spineName = spine.animation
|
|
spine.setAnimation(0, spineName, loop);
|
|
}
|
|
}
|
|
|
|
|
|
|