【问题标题】:Andengine - Object pool or generic pool optimisationAndengine - 对象池或通用池优化
【发布时间】:2015-02-06 12:53:38
【问题描述】:

我正在创建一个游戏,它会在某个时间点生成许多精灵,例如子弹。 我正在使用对象池,它是 andengine 中的通用池。 但我面临的问题是第一次创建对象时它会滞后。至于第一次,当对象附加到场景时。当我一次附加 100 个精灵时,它会滞后。

所以我在考虑是否可以在加载场景时加载所有必需的对象并将其加载到池中。

现在我的代码如下..

bullets = bullet_pool.obtainPoolItem();

if(!bullets.hasParent())
    {
    Presentscene.attachChild(bullets);
    }

请给我一些建议。

我可以在游戏前在池中加载 100 个对象(精灵),这样它就不会在游戏中间延迟为池创建新鲜的对象。

【问题讨论】:

    标签: android object sprite andengine objectpool


    【解决方案1】:

    您可以在游戏加载过程中预加载所需数量的子弹。像这样的:

    private void preloadBullets(){
        Bullet[] bulletArr = new Bullet[1000];
        // Create the new bullets
        for (int i=0; i<1000; ++i){
            bulletArr[i] = bullet_pool.obtainPoolItem();
        }
        // Recycle all bullets
        for (int i=0; i<1000; ++i){
            bullet_pool.recyclePoolItem(bulletArr[i]);
        }
    }
    

    这样,如果您在游戏运行前致电preloadBullets,您将在池中回收 1,000 颗子弹,以便快速获取物品。

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 2011-06-11
      • 2021-08-10
      相关资源
      最近更新 更多