CocosCreator中使玩家移動到點選位置的程式碼
var that = this
that._playerSpeed = 300
that.bg.on(cc.Node.EventType.TOUCH_START,function(event){
//獲取當前點選的全域性座標
var temp = event.getLocation()
cc.log("點選全域性座標: ",temp.x,temp.y)
//獲取當前點選的區域性座標
var tempPlayer = that.player.parent.convertToNodeSpaceAR(temp)
cc.log("點選區域性座標: ",tempPlayer.x,tempPlayer.y)
//獲取當前的玩家的區域性座標
var po1 = that.player.getPosition()
cc.log("玩家座標: ",po1.x,po1.y)
//對玩家的行走進行左右交換
if(po1.x < tempPlayer.x){
that.player.getChildByName("anim").scaleX = -1
}else{
that.player.getChildByName("anim").scaleX = 1
}
//計算玩家移動的時間
var playTime = cc.pDistance(tempPlayer,po1) / that._playerSpeed
//讓玩家移動到點選位置
var action = cc.moveTo(playTime,tempPlayer);
cc.log("移動時間: ",playTime)
//移動前停止所有動作
that.player.stopAllActions()
//進行移動
that.player.runAction(action);
//進行移動動畫
that.anim.play('playerRun')
//移動完成過後。是玩家進入站立動畫狀態
that.player.runAction(cc.sequence(action, cc.callFunc(function(){
that.anim.play("playerStand")
})))
})
},