Variablen haben einen Gültigkeitsbereich. Wenn du Sachen in einem if{} erstellt sind sie nur darin gültig, genau so wäre etwas, dass du in dem else{} machst nur darin gültig.
Zu dem Bild:
- Das Reinladen und das Zerstören solltest du gar nicht in dem onFrame Callback machen, weil der 60 mal pro Sekunde passiert.
- Es gibt den Callback "onInit.." oder so. Der wird ausgeführt wenn die Makerspieldaten geladen wurden,also einmal beim Spielstart. Dort kannst und solltest du Bilder reinladen.
- Es gibt auch den Callback "onExit" oder so, der wird ausgeführt wenn das Spiel beendet wird. Dort ist der richtige Ort um Bilder mit destroy freizugeben.
Die Variable RPG::Image *meinBild deklarierst du in der main.cpp-Datei. Dadurch ist sie in den andern Callbacks vorhanden und kann benutzt werden.
Ich hab schon öfters destroy bei Bildern gemacht, die nicht existierten weil ich einen falschen Dateinamen angegeben hab. Das heisst, du musst und brauchst nicht prüfen, ob der ->loadFromFile Vorgang erfolgreich war. Was du prüfen solltest ist, ob RPG::Image::create(); erfolgreich war und das machst du per
if(meinBild != NULL)
{
RPG::Image::destroy(meinBild );
}







Zitieren