【发布时间】:2015-03-22 23:19:13
【问题描述】:
我正在制作 sfml 游戏,并且在所有敌人都死去的那一刻。它们被设置为重生,但是当这种情况发生时,它们会比以前多了一个精灵。
加载精灵的代码是
unsigned int orcNumber = 5;
for (int i = 0; i < orcNumber; i++)
{
SpriteVector.push_back(ogreSprite);
SpriteVector[i].setPosition(spawnPointX[i], spawnPointY[i]);
}
如果敌人在屏幕外或被击中,则将其移除的代码类似于下面使用擦除的代码。
for (unsigned j = 0; j < SpriteVector.size(); j++)
{
if (this->SpriteVector[j].getPosition().x < 0 - 80 )
{
//this succesfully removes the object from the vector
SpriteVector.erase(SpriteVector.begin() + j);
std::cout << "Container size..." << SpriteVector.size() << "\n";
}
}
重绘它们的声明是:
unsigned int orcNumberRespawn = 5;
if (SpriteVector.size() <= 1)
{
for (int i = 0; i < orcNumberRespawn; i++)
{
SpriteVector.push_back(ogreSprite);
SpriteVector[i].setPosition(spawnPointX[i], spawnPointY[i]);
}
}
window.draw(SpriteVector[i]);
谁能确定为什么当精灵需要重新绘制时,它每次都用 + 1 个精灵绘制?
【问题讨论】: