CallFunc
cc.CallFunc()動作允許你從一個動作中調(diào)用一個方法。在連續(xù)動作的結(jié)尾這個方法很有用。
舉例:
node.runAction(cc.sequence(
cc.moveTo(0.5,beAttackPos),
//在攻擊動作完成后,調(diào)用一個方法,進(jìn)行血量的判斷
cc.callFunc(countAttock),
cc.moveTo(0.2,nodePos),
//再攻擊完成回到初始位置后,調(diào)用一個方法,進(jìn)行攻守轉(zhuǎn)換的判斷
cc.callFunc(attackEnd)
))
function countAttock(){
cc.log("扣除血量")
beAttack.getComponent("warNpc").pub_deductionLife(node.getComponent("warNpc").pub_getAtt())
}
function attackEnd (){
//當(dāng)攻擊方還有未攻擊的人員的時候,繼續(xù)調(diào)用_battleJudgment這個方法進(jìn)行攻擊
if (parson1.length > 0){
that._battleJudgment(parson1,parson2)
//當(dāng)攻擊方全員都攻擊完后,進(jìn)行攻守轉(zhuǎn)換
}else{
that._beginbattle();
}
}
取出數(shù)組中的第一個元素來使用,取出后,原數(shù)組中第二個元素變?yōu)榈谝粋€
var node = arr.shift()
回合制游戲中,進(jìn)行攻守轉(zhuǎn)換以及攻擊時候不會貼在被攻擊方的身上的代碼
beAttackPos = cc.pAdd(beAttackPos,nodePos.x > beAttackPos.x?cc.p(100,0):cc.p(-100,0))