Hallo,
ich weiss nicht genau ob mein Thema in "2D und 3D Grafik" reinpasst?
Ich habe vor ein kleines retrogame nachzustellen. Ein Raumschiff unten die Monster oben aufgereit, die dann abgeschossenw werden müssen.
Nun habe ich meinen Code soweit fertig.
Die Gegner tauchen in einem bestimmten Zeitabstand auf und beziehen eine bestimmte position. Das Raumschiff das man steuert ist bewegungsfähig und kann auch schon Schüsse abfeuern.
DOCH!, ich habe es so geregelt das wenn ein Schuss an den Gegnern vorübergeht und außerhalb des Bildschirmes gelangt gelöscht wird!
Dies funktioniert aber nicht so wie ich das will!
Wenn der Sprite des Schusses den Bildschirmrand berührt Popt eine Fehlermeldung auf: (siehe Anhang "Fehlermeldung")
Die Funktion die ich zum entfernen des Sprites aus der Liste verwende:
|
Quellcode
|
1
|
if(SchussIt->GetPosition().y < 20) { lSchuss.erase(SchussIt); SchussIt = lSchuss.begin(); }
|
"SchussIt" = std::list<sf:: Sprite>::iterator SchussIt;
"lSchuss" = std::list<sf:: Sprite>lSchuss;
Ich Hoffe ihr versteht was ich sagen will und könnt mir helfen
!!??
Gruß