1
我正在適應馬里奧Zechner的開始Android遊戲框架來創建一個幼兒色彩學習應用程序。在測試的最後階段,我發現如果用戶同時按下並釋放兩個不同的按鈕(例如下面屏幕截圖中的'settings'和'home'按鈕),「Colors!已停止」。出現通知。 多個水龍頭創建索引超出界限例外
Zechner框架以列表的形式提供輸入處理,然後逐個處理每個輸入。我認爲問題在於代碼的@覆蓋更新區域:
@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
}
}
}
以下是從logcat中顯示異常(我注意到,「無效的指數」將取決於有多少接觸,使用不同,但大小常是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
我曾嘗試之前添加
if (len != 0)
for循環,但收到了同樣的結果
感謝您的幫助!
有沒有辦法只使用單一觸摸響應而不管使用哪個版本的Android? – Wayde 2013-04-26 12:04:34