AndEngine Touch事件池用尽了

时间:2014-12-28 14:14:33

标签: android touch andengine pool

我试图通过使用AndEngine在游戏中处理整个场景上的触摸事件来触发方法。但是现在,每当我点击屏幕时,它都会向我抛出一个详细的消息

"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;
    }

1 个答案:

答案 0 :(得分:0)

如果您忘记在游戏活动中注册场景,有时会发生这种情况。应该是这样的:

scene.setOnSceneTouchListener(this); 

有关详细信息,请参阅this tutorial