我创建了对象池,如下所示。
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);发布于 2015-07-13 11:19:00
(i = 0;i< MAX_ARROW_NUMBER;i++)的
MAX_ARROW_NUMBER应该是MAX_ENEMY_NUMBER吗?
因为创建enemyPool时的大小为MAX_ENEMY_NUMBER in
enemyPool =新矢量(MAX_ENEMY_NUMBER);
https://stackoverflow.com/questions/31344431
复制相似问题