2015-08-09 104 views
0

我对keydown有一个WASD键运动。我希望它在走路时始终播放动画,并在按下按键时始终移动。as3如何使运动更流畅?

问题是,如果我一次按下多个键,它将停止移动或停止动画。使它看起来僵硬和不光滑。您正在使用的是现在

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

你我一次通过多个键就像W + D会移动对角线一样? – Christ

回答

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