2017-01-01 6 views
0

同じボタンが離されたときにfalseにするために不可欠な、ボタンが押されたときにブール値をtrueに設定する必要があります。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()コードが実行されていることが保証されています。また、ユーザーがプログラムを終了すると、disposeが呼び出されるので、問題はあまり発生しませんが、 – Dauas

+0

@Lestat実際には少し実験を行いましたが、一時停止する前にkeyUp()が自動的に呼び出されます。だからそれはまったく問題ではありません。 – Dauas

答えて

0

この方法は安全だと思います。

考えられるケースは何ですか?

私たちはkeyDownをtrueに設定し、KeyUpをfalseに設定するたびにtrueに設定します。 isKeyPressedまたはisKeyJustPressedを使用して、私の意見では

しかしは、あなたが望むものを達成するための最良の方法です。

この相違についてはarticleをご覧ください。

関連する問題