Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Andorra 2d Klasseninstanzen (Sprites)

  Alt 1. Aug 2010, 10:08
Nein, wie im Tutorial geschrieben, solltest du Sprites niemals mit Free, sondern mit der Funktion "Dead" freigeben.

Ich meinte nur, dass wenn du in deinem Array noch eine Referenz auf das Sprite-Objekt hast, du aber das Sprite mit
Dead freigibst, das Sprite zwar nicht mehr existiert, in deinem Array jedoch noch eine Referenz auf die Speicherstelle ist, an der mal das Sprite war. Versuchst du jetzt dennoch darauf zuzugreifen, bekommst du einen Zugriffsfehler.

Du musst dich also nochmal explizit darum kümmern, die Referenz in deinem Array auf nil zu setzen oder das Array ein Element zu verkürzen und alle anderen Elemente nach zu rücken etc.

Verwendest du gleich die Liste der Sprites hast du dieses zusätzliche Problem nicht.

Sonst spricht eigentlich nichts gegen das Array, außer dass es dein Programm fehleranfälliger macht, wenn du nicht genau weißt, was du eigentlich machst.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat