我試圖「刪除」/殺死我的實體,如果它們超出「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