Код: Выделить всё
private var rightDown:Boolean = false; private var leftDown:Boolean = false; private var upDown:Boolean = false; private var downDown:Boolean = false; stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown); stage.addEventListener(KeyboardEvent.KEY_UP, rightUP); private function keydown (e:KeyboardEvent):void { if(e.keyCode == Keyboard.RIGHT){ tank2.rotation += 5; rightDown = true; }else if(e.keyCode == Keyboard.LEFT){ tank2.rotation -= 5; leftDown = true; } var dirAngle:Number = tank2.rotation / 180 * Math.PI; if (e.keyCode == Keyboard.UP /*|| upTest == 1*/) { tank2.x += speedTank * Math.cos(dirAngle); tank2.y += speedTank * Math.sin(dirAngle); upDown = true; }else if(e.keyCode == Keyboard.DOWN){ tank2.x -= speedTank * Math.cos(dirAngle); tank2.y -= speedTank * Math.sin(dirAngle); downDown = true; } if (rightDown == true && upDown == true) { tank2.x += speedTank * Math.cos(dirAngle); tank2.y += speedTank * Math.sin(dirAngle); tank2.rotation += 5; } if (rightDown == true && downDown == true) { tank2.x -= speedTank * Math.cos(dirAngle); tank2.y -= speedTank * Math.sin(dirAngle); tank2.rotation += 5; } if (leftDown == true && upDown == true) { tank2.x += speedTank * Math.cos(dirAngle); tank2.y += speedTank * Math.sin(dirAngle); tank2.rotation -= 5; } if (leftDown == true && downDown == true) { tank2.x -= speedTank * Math.cos(dirAngle); tank2.y -= speedTank * Math.sin(dirAngle); tank2.rotation -= 5; } } private function rightUP(e:KeyboardEvent):void { if(e.keyCode == Keyboard.RIGHT){ rightDown = false; trace('rightDown = false;'); } if(e.keyCode == Keyboard.LEFT){ leftDown = false; trace('leftDown = false;'); } if(e.keyCode == Keyboard.UP){ upDown = false; trace('upDown = false;'); } if(e.keyCode == Keyboard.DOWN){ downDown = false; trace('downDown = false;'); } }
Как мне сделать чтобы при отпускании клавиши RIGHT объект продолжал двигаться в перед(т.е клавиша UP находилась в состоянии "нажата")?