2
오늘 xperia mini pro에 게임을로드하려고 시도했는데 하드웨어 버튼을 누를 때마다 onKeyDown
콜백이 예상대로 수신되었지만 즉시 동일한 키에 onKeyUp
이 도착했고 실제로 키, 콜백 메소드가 호출되지 않습니다.키 릴리스로 안드로이드 키보드 문제
입력 코드는 다음과 같습니다
public final boolean buttons(int keyCode, KeyEvent event, boolean state) {
boolean handled = true;
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
case KeyEvent.KEYCODE_W:
this.input.KEY_UP = state;
Logger.print("UP: " + state);
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
Logger.print("RIGHT: " + state);
this.input.KEY_RIGHT = state;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
case KeyEvent.KEYCODE_S:
this.input.KEY_DOWN = state;
Logger.print("DOWN: " + state);
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
this.input.KEY_LEFT = state;
break;
case KEYCODE_BUTTON_SQUARE:
case KeyEvent.KEYCODE_L:
this.input.KEY_FORWARD = state;
break;
case KEYCODE_BUTTON_TRIANGLE:
case KeyEvent.KEYCODE_K:
this.input.KEY_BACKWARD = state;
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
this.input.KEY_ACTION = state;
break;
default:
handled = false;
break;
}
return handled;
}
이 문제를 해결하는 방법이 있나요?
편집 : onKeyPressed
및 released
에 대해 죄송합니다. 사실 onKeyDown
및 onKeyUp
의미 :
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return features.inputManager.inputButtons.press(keyCode, event) ?
true : super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
return features.inputManager.inputButtons.release(keyCode, event) ?
true : super.onKeyUp(keyCode, event);
}
언론과 릴리스 방법 중 하나를 true 또는 false 매개 변수를 사용하여 버튼 메서드를 호출합니다.