2017-01-01 63 views
0

我想設置一個布爾值爲true時,按鈕被按下,這是必要的,當釋放相同的按鈕時爲false。在LibGDX InputProcessor中,每個KeyDown()都有相應的KeyUp()嗎?

public boolean keyDown (int keycode) { 

    switch (keycode) { 
     case Keys.RIGHT: 
     player.movingRight = True; 
     //or 
     //player.xVel = 1; 
     break; 

public boolean keyUp (int keycode) { 

    switch (keycode) { 
     case Keys.RIGHT: 
     player.movingRight = False; 
     //or 
     //player.xVel = 0; 
     break; 

這是一種達到人們想要的結果的安全方法,還是會有布爾值保持爲True的情況?

+0

以下場景可能會發生: 1.用戶按住按鍵。 2.用戶最小化/切換到另一個窗口/應用程序。 3.用戶釋放密鑰。 然後,密鑰不需要那個密鑰。 – Lestat

+0

但是,在這種情況下,我們保證運行pause()代碼,並且如果用戶退出程序,我們知道處理被調用,所以這些問題不會產生太多問題,但非常感謝。 – Dauas

+0

@Lestat其實我做了一點實驗,結果在暫停之前會自動調用keyUp()。所以這根本不是問題。 – Dauas

回答

0

我認爲這種方法是安全的。

有什麼可以考慮的情況?

每當我們將keyDown設置爲true,並且每當我們將KeyUp設置爲false時。

在我看來使用isKeyPressed或isKeyJustPressed是實現你想要的最好的方式。

查看這個article的差異。