Mario Zechner의 Android 게임 시작 프레임 워크를 사용하여 유아 색상 학습 앱을 만듭니다. 테스트의 마지막 단계에서 사용자가 동시에 두 개의 다른 버튼 (예 : 아래의 스크린 샷에있는 '설정'및 '집'버튼)을 눌렀다가 놓으면 '색상!이 중지되었습니다'라는 사실을 발견했습니다. 알림이 나타납니다. 여러 탭으로 인해 경계를 벗어난 인덱스가 생성됨
Zechner의 프레임 워크는 입력을 개별적으로 처리하는 목록 형태로 처리합니다. 나는 문제가 코드의 @Override 갱신 영역에있는 생각 :
@Override
public void update(float deltaTime) {
world.timer = world.timer + deltaTime;
List<TouchEvent> touchEvents = game.getInput().getTouchEvents();
int len = touchEvents.size();
for (int i = 0; i < len; i++) {
TouchEvent event = touchEvents.get(i);
if (event.type == TouchEvent.TOUCH_UP) {
// This is where the guts of my app are
}
}
}
로그 캣 예외가 게재되는 다음 (필자는 "잘못된 인덱스"를 사용하는 방법 많은 터치에 따라 다를 수 있습니다 것으로 나타났습니다하지만, 크기는) 항상 곁에 0 :
04-24 19:27:55.239: E/AndroidRuntime(28002): FATAL EXCEPTION: Thread-555
04-24 19:27:55.239: E/AndroidRuntime(28002): java.lang.IndexOutOfBoundsException: Invalid index 1, size is 0
04-24 19:27:55.239: E/AndroidRuntime(28002): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
04-24 19:27:55.239: E/AndroidRuntime(28002): at java.util.ArrayList.get(ArrayList.java:304)
04-24 19:27:55.239: E/AndroidRuntime(28002): at com.lilyandrosieshow.colors.GameScreen.update(GameScreen.java:153)
04-24 19:27:55.239: E/AndroidRuntime(28002): at com.badlogic.androidgames.framework.impl.AndroidFastRenderView.run(AndroidFastRenderView.java:42)
04-24 19:27:55.239: E/AndroidRuntime(28002): at java.lang.Thread.run(Thread.java:856)
04-24 19:28:59.301: D/dalvikvm(28002): GC_CONCURRENT freed 482K, 4% free 15473K/16071K, paused 2ms+2ms
04-24 19:32:55.262: I/Process(28002): Sending signal. PID: 28002 SIG: 9
04-24 19:32:55.262: E/AndroidRuntime(28002): Handle UnCaght exceptions. KILLING PID: 28002
나는 같은 결과
를 for 루프 전에if (len != 0)
을 추가하려고하지만받은
모든 도움을 주셔서 감사합니다.
사용중인 Android 버전에 관계없이 단일 터치 응답 만 사용하는 방법이 있습니까? – Wayde