2014-12-28 37 views
1

我試圖通過在AndEngine遊戲中處理整個場景中的觸摸事件來觸發一種方法。然而現在,每次我點擊它拋出我一個詳細級別消息AndEngine Touch事件池已用盡

"org.andengine.input.touch.TouchEvent$TouchEventPool<TouchEvent> was exhausted, with 0 item not yet recycled." 

"org.andengine.util.adt.pool.PoolUpdateHandler$1<TouchEventRunnablePoolItem> was exhausted, with 0 item not yet recycled." 

,並沒有做除此之外的任何畫面。

這裏發生了什麼,我是如何處理SceneTouchEvents的?我能否通過某種方式將更多的觸摸事件分配給所述池來解決這個問題?

- 謝謝你,乾杯!

編輯:方法我試圖撥打:

private void restartGame(){ 
     Debug.d("GameMech", "Restart method triggered."); 
     setIgnoreUpdate(true); 
     unregisterUpdateHandler(physicsWorld); 
     enemyFlies.clear(); 
     platforms.clear(); 
     physicsWorld.clearForces(); 
     physicsWorld.clearPhysicsConnectors(); 

     while (physicsWorld.getBodies().hasNext()){ 
      physicsWorld.destroyBody(physicsWorld.getBodies().next()); 
     } 

     camera.reset(); 
     camera.setHUD(null); 
     camera.setChaseEntity(null); 

     detachChildren(); 

     populate(); 
     setIgnoreUpdate(false); 
    } 

有了這個onSceneTouch方法:

@Override 
    public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) { 
     if(pSceneTouchEvent.isActionDown() && player.isDead()){ 
      restartGame(); 
      return true; 
     } 
     return false; 
    } 
+0

你可以粘貼你嘗試從touch事件處理程序中觸發的方法嗎? – asherbar

+0

對不起,現在編輯! – Kugelblitz

+0

您是否記得在遊戲活動中註冊場景?應該是這樣的:'scene.setOnSceneTouchListener(this);' – asherbar

回答

0

如果你忘了在你的遊戲活動登記場景這有時會發生。應該是這樣的:

scene.setOnSceneTouchListener(this); 

請參閱this tutorial瞭解更多信息。

+0

謝謝,這正是發生了什麼事! – Kugelblitz