我有一个用于keydown的WASD键移动。我希望它在行走时始终播放动画,并在按下琴键时始终移动。
问题是,如果我一次按多个键,它会停止移动或停止动画。使它看起来僵硬和不光滑。
private function onKeyDown(event: KeyboardEvent): void
{
if (event.keyCode == Keyboard.A)
{
vx = -5;
play();
}
else if (event.keyCode == Keyboard.D)
{
vx = 5;
play();
}
else if (event.keyCode == Keyboard.W)
{
vy = -5;
play();
}
else if (event.keyCode == Keyboard.S)
{
vy = 5;
play();
}
}
答案 0 :(得分:1)
代码意味着如果按下键盘,将触发onKeyDown并检查是否按下了键A或D或W或S,它只处理其中一个因为else if
尝试像这样更改你的代码
private function onKeyDown(event: KeyboardEvent): void
{
if (event.keyCode == Keyboard.A)
{
vx = -5;
play();
}
if (event.keyCode == Keyboard.D)
{
vx = 5;
play();
}
if (event.keyCode == Keyboard.W)
{
vy = -5;
play();
}
if (event.keyCode == Keyboard.S)
{
vy = 5;
play();
}
}
如果这不能解决您的问题,可能是您的play()
功能