您可以指定A键在我的Flash游戏中移动我的角色,如果可以的话?
playerOne.y = mouseY;
}
function movePlayerTwo(evt:KeyboardEvent):void {
if(evt.keyCode == Keyboard.UP) { playerTwo.y = playerTwo.y - 20; }
if(evt.keyCode == Keyboard.DOWN) { playerTwo.y = playerTwo.y + 20; }
}
答案 0 :(得分:0)
答案 1 :(得分:0)
在听众身上
stage.addEventListener(KeyboardEvent.KEY_DOWN, onDown);
和
stage.addEventListener(KeyboardEvent.KEY_UP, onUp);
如果按下任意键,你只需听。在处理程序onDown()和onUp()中,你需要检查是否按下了女巫键。通常它是通过一个开关完成的,以保持代码整洁。这是一个例子:
private function onDown(e:Event):void
{
switch(e.keyCode)
{
case 65: // this is the keycode for key "a"
keyAPressed = true;
break;
}
}
对于移动来说,制作一些变量是个好主意,比如
private var isMoving:Boolean = false;
private var leftPressed:Boolean = false;
private var rightPressed:Boolean = false;
private var goingLeft:Boolean = false;
有了这个,你可以通过这样的循环获得更好的控制:
private function movementLoop():void
{
if (! isMoving)
return; // if the char's not moving it's safe to return the function
if (goingLeft)
x -= movementSpeed;
else
x += movementSpeed;
}
您可以使用此网站检查每个按钮的keyCodes:http://www.kirupa.com/developer/as3/using_keyboard_as3.htm
从这个示例中可以看出,移动是在循环上处理的,可以通过计时器或ENTER_FRAME事件调用,而不是按下按钮。这很重要,原因很多,其中很少是:
希望我能回答你的问题。
祝你好运!