Hiho liebe Leute,
ich hab folgendes Problem: Ich erzeuge an zwei verschiedenen Stellen in meinem Quellcode ein Sprite und lösche es direkt danach wieder. Probelm dabei ist: wenn ich es an der einen Stelle lösche, klappt alles wunderbar, an der anderen jedoch hängt sich das Programm auf und muss beendet.
Da ich das jetzt sehr seltsam finde und auch keine Ahnung habe woran das liegen kann wollt ich einfach mal bei euch nachfragen woran das liegen kann.
Die zwei Stellen, wo ich die Sprites erstelle bzw. lösche sind die folgenden:
Mein Spiel hat eine Klasse GameState von der verschiedene Klassen erben, wie z.B. Menü oder "MainGame"(also das eigentliche Spiel). Diese Gamestates werden von der Klasse Game verwaltet.
Wenn ich nun dieses Sprite in der Klasse Game erstelle und lösche, klappt alles wunderbar. Lösche ich es jedoch in einer der Klassen die von GameState erben, so muss das Programm beendet werden.
Ich habe wirklich keine Ahnung woran das liegen kann.
Ich weiß nicht ob es hilfreich is, aber ich lad einfach mal den Quellcode hoch, dass man ihn bei Bedarf runterladen kann:
http://daniel92.blogdns.com/
Die Klassen Game/Gamestate etc. sind in Game/... zu finden, die Klasse Sprite ist unter MyEngine/... .
Ich hab jetzt als Beispiel mal in Game.cpp und in MainGame.cpp den folgenden Code eingefügt:
|
C-/C++-Quelltext
|
1
2
|
CSprite* s = new CSprite(MyEngine->GetResManager()->GetTexture("stardestroyer"));
delete s;
|
Damit wird eigtl. nur ein Sprite erzeugt und gelöscht, is ja eigtl. ganz einfach. Nur eben funzts in MainGame.cpp nich wenn ichs so ausführ.
Der Aufruf ist jeweils in der Methode Init() der Klassen zu finden.
Naja ich hoff ich habs genau genug beschrieben und auch, dass es ne ganz einfache Lösung dafür gibt =/
MfG Killmichnich