Ich versuche, meine Entitäten zu löschen/kill, wenn sie außerhalb der "playzone" oder atleast gehen, was für den Benutzer sichtbar ist. Ich bekomme keine Fehler, aber als ich dieses Codebeispiel in der Funktion "killEdgeEntities" ausprobierte und das Spiel startete, wäre alles schon tot, als ob die "if-Anweisungen" direkt ausgeführt würden. Und nein, ich spawne nichts außerhalb der Argumente. Zum Beispiel wird der Benutzer Ship in der Mitte des Bildschirms angezeigt.C++ Kann nicht von Fehlern debuggen, aber keine Fehler im Code
Wenn Sie mehr Informationen benötigen, kommentieren Sie es einfach.
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;
}
'entities' ist ein leerer Vektor. 'mEntities = entities;' macht 'mEntities' zu einem leeren Vektor, der all seinen vorherigen Inhalt verliert. Wolltest du etwas zu "Entitäten" hinzufügen? –
_ "so krank sein Blick auf die Post in 30 min" _ Sie werden überrascht sein, wie schlimm Dinge in so kurzer Zeit werden können. – user0042
Ihr Beitrag enthält ziemlich viel Hokuspokus. Sie zeigen besser ein [mcve] und beschreiben, was mit dem Code falsch ist, in dem Sinne, dass jemand verstehen kann, wer Ihr Spiel nicht kennt. – user463035818