2017-01-01 1 views
0

버튼을 눌렀을 때 부울을 설정하면 같은 버튼을 놓을 때 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; 

이 원하는 것입니다 결과를 달성하는 안전한 방법이다, 또는 이제까지 부울이 참에 남아있는 경우가있을 것인가?

+0

다음 장면이 발생할 수 있습니다. 1. 사용자가 키를 누르고 있습니다. 2. 사용자가 다른 창/앱으로 최소화/전환합니다. 3. 사용자가 키를 놓습니다. 그런 다음 해당 키를 호출 한 키 업 wasnt입니다. – Lestat

+0

그러나이 상황에서는 pause() 코드가 실행되며, 사용자가 프로그램을 종료하면 해당 문제가 너무 많이 발생하지는 않지만 처리해 주시면 감사하겠습니다. – Dauas

+0

@Lestat 사실 저는 약간의 실험을했는데, keyUp()이 일시 중지되기 전에 자동으로 호출됩니다. 그래서 그것은 전혀 문제가되지 않습니다. – Dauas

답변

0

이 방법은 안전하다고 생각합니다.

사용할 수있는 사례는 무엇입니까?!

우리가 keyDown을 할 때마다 true로 설정하고 KeyUp을 false로 설정할 때마다 설정합니다. isKeyPressed 또는 isKeyJustPressed를 사용하여 내 의견으로는

하지만은 당신이 원하는 것을 달성하는 가장 좋은 방법입니다.

차이점을 확인하려면 article을 확인하십시오.

관련 문제