as3如何让运动更流畅?

时间:2015-08-09 12:28:13

标签: actionscript-3

我有一个用于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();
        }
    }

1 个答案:

答案 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()功能