【问题标题】:AndEngine Touch Event pool exhaustedAndEngine Touch 事件池耗尽
【发布时间】:2014-12-28 14:14:33
【问题描述】:

我正在尝试通过在使用 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;
    }

【问题讨论】:

  • 你能粘贴你试图从触摸事件处理程序内部触发的方法吗?
  • 对不起,现在编辑!
  • 您记得在游戏活动中注册场景吗?应该是这样的:scene.setOnSceneTouchListener(this);
  • 天哪,这太尴尬了。不,我实际上忘了这样做,谢谢!

标签: android touch andengine pool


【解决方案1】:

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

scene.setOnSceneTouchListener(this); 

请参阅this tutorial 了解更多信息。

【讨论】:

  • 谢谢,这正是发生的事情!
猜你喜欢
  • 1970-01-01
  • 2011-06-24
  • 2015-01-18
  • 2017-07-10
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-24
相关资源
最近更新 更多