cc.Class({ extends: cc.Component, properties: { joyMoveNd: { default: null, type: cc.Node, }, joyShootNd: { default: null, type: cc.Node, }, playerNd: { default: null, type: cc.Node, }, playerSpine: { default: null, type: sp.Skeleton, }, }, onLoad() { this.moveJoy = this.joyMoveNd.getComponent('Joystick'); this.shootJoy = this.joyShootNd.getComponent('Joystick'); this.selfPlayer = this.playerNd.getComponent('playerCtrl'); // this.moveJoy.bindStartCb(this.joyMoveBegin.bind(this)); this.moveJoy.bindMoveCb(this.joyMove.bind(this)); this.moveJoy.bindEndCb(this.joyMoveEnd.bind(this)); }, joyMoveBegin() { this.selfPlayer && this.selfPlayer.joyMoveBegin(); this.playerSpine.setAnimation(0, 'throw_run', true); }, joyMove(ag, dis) { this.selfPlayer && this.selfPlayer.joyMove(ag, dis); this.moveing = true; this.ag = ag; }, joyMoveEnd() { this.selfPlayer && this.selfPlayer.joyMoveEnd(); this.moveing = false; this.playerSpine.setAnimation(0, 'throw_idle', true); }, update() { if (this.moveing) { //ag += 45 var dir = cc.v2( Math.cos(this.ag * (Math.PI / 180)), Math.sin(this.ag * (Math.PI / 180)) ); this.dir = dir.normalize(); if (this.dir.x >= 0) { this.playerSpine.node.parent.scaleX = 1; } else { this.playerSpine.node.parent.scaleX = -1; } this.playerNd.x += this.dir.x; this.playerNd.y += this.dir.y; } }, });