|
C-/C++-Quelltext
|
1
2
3
4
5
|
// Spielersprite erstellen
m_pSpritePlayer = new CSprite;
// Zeiger auf Sprite kopieren und Koordinaten setzen
m_pSpritePlayer = pSpritePlayer;
|
In der zweiten Nichtkommentar-Zeile liegt das Problem. Du erzeugst ein Memoryleak weil du den Zeiger auf den eben angeforderten Speicher überschreibst.
Vielleicht meintest du das:
|
C-/C++-Quelltext
|
1
|
*m_pSpritePlayer = *pSpritePlayer;
|
Vermutlich reichts aber schon, wenn du die Zeile einfach auskommentierst und den Parameter entfernst.
Der Hintergrund ist der: Du verwendest ein einziges Sprite für alle Asteroiden. Das Sprites und das Image des Spielers wird aber nur einmal verwendet, weshalb er es selbst erzeugen kann.
Es reicht halt nicht einfach den Code zu kopieren, ohne ihn zu verstehen.
Ich empfehle dir die SFML anzuschauen, damit ein paar kleine Programme zu schreiben, dir das Buch in 1-2 Wochen nochmal anzuschauen(alle Kapitel durchgehen und schauen ob du noch alles weißt) und ein Nachschlagewerk durchzuarbeiten.
Wahrscheinlich ist es auch sinnvoll noch ein paar Programme in der Konsole zu schreiben.