我试图“删除”/杀死我的实体,如果它们超出“playzone”范围或至少对用户可见。我没有得到任何错误,但是当我在函数“killEdgeEntities”中试过这个代码示例并开始游戏时,所有东西都已经死了,就好像“if语句”直接执行一样。不,我没有在争论之外产生任何东西。例如,用户Ship在屏幕中间产生。C++无法从错误中进行调试,但代码中没有错误
如果你们需要更多的信息,只需评论一下。
void Invaders::killEdgeEntities() {
EntityVector entities;
for (EntityVector::iterator j = mEntities.begin(); j != mEntities.end(); j++) {
Entity *entity = *j;
// * Dödsgränser *
// Vänster:
if (entity->getPosition().getX() < -20) {
delete entity;
}
// Höger:
if (entity->getPosition().getX() > VGCDisplay::getWidth() + 20) {
delete entity;
}
// Upp:
if (entity->getPosition().getY() < -80) {
delete entity;
}
// Ner:
if (entity->getPosition().getY() > VGCDisplay::getHeight() + 20) {
delete entity;
}
}
mEntities = entities;
}
'实体'是一个空向量。 'mEntities = entities;'使'mEntities'成为一个空向量,也漏掉了它以前的所有内容。你是否想把某些东西添加到“实体”? –
_“在30分钟内看着这个帖子”_你会很惊讶在如此短的时间内会有多糟糕。 – user0042
你的帖子包含了一些mumbojumbo。你最好展示一个[mcve]并描述代码中的错误,以便人们能够理解谁不知道你的游戏 – user463035818