"プレイゾーン"の外に出ているか、ユーザーに見えるものを少なくとも削除しようとしています。私はエラーは出ませんが、このコードサンプルを "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
あなたの投稿にかなりの冗談が含まれています。あなたは[mcve]を表示し、誰かがあなたのゲームを知らない人を理解できるという点でコードの何が間違っているかを記述することをお勧めします。 – user463035818