Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

14.10.2015, 17:40

Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

12

14.10.2015, 17:52

erase gibt dir einen Iterator auf das nächste Element, welches nach dem gelöschten Element steht. Das ist doch nicht so schwer, oder?
Das Problem beim Benutzen des gelöschten Iterators ist, das es undefiniertes Verhalten ist. Darum solltest du eben dir einen neuen von erase holen.
Edit: Mist, zu spät.
@Koschi: Übrigens.... :D

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

13

14.10.2015, 18:08

Ah ok. Habs gelöst. Jetzt nur noch das Problem mit dem render...

14

14.10.2015, 18:25

Aufjedenfall sollte es for(auto &i : ...) heißen, sonst wird jedes element jedesmal immer in i kopiert.
Zudem wird beim erstellen ein Zeiger auf die lokalen variable 'asteroid' in die liste getan. Init-Methoden sind übrigens der letzte Dreck.

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

15

14.10.2015, 18:30

Init-Methoden sind übrigens der letzte Dreck.
Ja, hab ich auch gerade gesehen, dass ich die Init-Methode mit dem Konstriktor verwechselt habe ^^

16

14.10.2015, 19:32

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void PlayState::SpawnAsteroid()
{
    // Alle halbe Sekunde einen neuen Asteroiden erzeugen
    if (clock.getElapsedTime().asSeconds() >= 0.5f)
    {
        // Neuer Asteroid
        Asteroid asteroid;

        asteroid.Init();

        mAsteroidList.push_back(&asteroid);

        clock.restart().Zero;
    }

}


Und auch hier werfe ich einfach mal wieder paar fragen in den Raum:
  • Wie Lange Existiert asteroid?
  • Wie Lange verweist der Zeiger in der Liste auf asteroid?
  • Klingelt es warum es crasht?

@Rolo .|.. :P
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

17

14.10.2015, 19:38

Wie Lange Existiert asteroid?
Wie Lange verweist der Zeiger in der Liste auf asteroid?

Wenn du schon so fragst, dann bestimmt nicht solange, bis er aus der Liste gelöscht wird. Liegt der Fehler darin, dass asteroid als Referenz hinzugefügt wird?

18

14.10.2015, 19:43

Liegt der Fehler darin, dass asteroid als Referenz hinzugefügt wird?

Es wird nicht als Referenz hinzugfügt.

Deine Liste sieht so aus!

C-/C++-Quelltext

1
std::list<Asteroid*> mAsteroidList;


Mach dir mal gedanken über dein Code!
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

cojo2015

Alter Hase

  • »cojo2015« ist der Autor dieses Themas

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

19

14.10.2015, 19:49

Liegt der Fehler darin, dass asteroid als Referenz hinzugefügt wird?

Es wird nicht als Referenz hinzugfügt.

Deine Liste sieht so aus!

C-/C++-Quelltext

1
std::list mAsteroidList;


Mach dir mal gedanken über dein Code!

Ah ok. Hab den Code entsprechend angepasst. Trotzdem werden die Asteroiden nicht von der Liste entfernt...

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

20

14.10.2015, 19:54

Wie gut, dass wir hellsehen können, was du in deinem Code geändert hast...
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige