2015-08-09 394 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()功能