1

以下のようにオブジェクトプールを作成しました。

void Arrow::CreatePools( cocos2d::Layer *layer )
{
    Sprite * sprite;
    int i;

    //--CREATE ENEMY OBJECT POOL--//
    enemyPool = new Vector<Sprite*>(MAX_ENEMY_NUMBER);
    enemyIndex = 0;
    for (i = 0; i < MAX_ENEMY_NUMBER; i++) {
        sprite = Sprite::create("Enemy.png");
        sprite->setVisible(false);
        layer->addChild(sprite);
        enemyPool->pushBack(sprite);
    }

プールからオブジェクトをプルしようとすると、cocos でこのエラーが発生します。{return static_cast<size_type>(this->__end_ - this->__begin_);}

私のオブジェクトプル方法は次のとおりです。

auto enemy = enemyPool->at(enemyIndex);
            enemyIndex++;
            if (enemyIndex == enemyPool->size())
                enemyIndex = 0;
            enemy->stopAllActions();
            enemy->setPosition(myStartPoint);
            enemy->runAction(myAction);
            enemy->setVisible(true);
4

1 に答える 1