消消方块阵换皮表情
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

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);
}
}