方向ボタンとダッシュボタンがあります。私が実現したいのは、スプリント ボタンを押している間、プレイヤーが 2 倍の速さで移動することです。次にスプリント ボタンを離すと、プレーヤーは通常の速度で歩き続けます。ただし、方向ボタンを押したままでも、スプリント ボタンを離すとプレーヤーが停止します。
public function addControllerListeners(){
controller.leftButton.addEventListener(TouchEvent.TOUCH_ROLL_OVER, moveCharLeft);
controller.leftButton.addEventListener(TouchEvent.TOUCH_BEGIN, moveCharLeft);
controller.leftButton.addEventListener(TouchEvent.TOUCH_END, playerStop);
controller.leftButton.addEventListener(TouchEvent.TOUCH_OUT, playerStop);
controller.leftButton.addEventListener(TouchEvent.TOUCH_ROLL_OUT, playerStop);
sprintButton.addEventListener(TouchEvent.TOUCH_ROLL_OVER, playerSprint);
sprintButton.addEventListener(TouchEvent.TOUCH_BEGIN, playerSprint);
sprintButton.addEventListener(TouchEvent.TOUCH_END, playerStopSprint);
sprintButton.addEventListener(TouchEvent.TOUCH_OUT, playerStopSprint);
sprintButton.addEventListener(TouchEvent.TOUCH_ROLL_OUT, playerStopSprint);
}
public function playerSprint(e:Event = null) {
playerChar.sprint = true;
trace("Player Sprint");
}
public function playerStopSprint(e:Event = null) {
playerChar.sprint = false;
trace("stopSprinting");
}
public function moveCharLeft(event:TouchEvent):void{
playerChar.setWalk("left");
}
public function playerStop(event:TouchEvent):void {
var target:String = event.target.name;
if(target == "upButton" || target == "rightButton" || target == "downButton" || target == "leftButton"){
trace("Player Stopped from: " + event.target.name + " - " + event.currentTarget.name);
playerChar.direction = "idle";
}
}
プレイヤーの停止関数のトレースは、ターゲット名が押されていたコントローラーのボタンであると述べています。離すボタンはスプリントボタンなのに。
ボタンがステージに追加されたのに役立つ場合。それが違いを生むべきではないと思いますが、あなたは決して知りません。