Zitat von
Luckie:
Code:
[b]if[/b] (p^.y < 0) [b]or[/b] (DeleteAll) [b]then[/b]
[b]begin[/b]
Fire; [color=#000080][i]// deswegen die Schleife rückwärts durchlaufen[/i][/color]
Dispose(p);
[b]end[/b];
[b]end[/b];
Das sah doch bei mir anders aus. Anstatt Fire gehört da doch FAllShoots.Delete(i) hin. Mit Fire erzeugst du einen neuen Schuss, aber an dieser Stelle soll der Schuss aus FAllShoots entfernt werden. Das Kommentar kannst du entfernen und die Schleife wieder vorwärts laufen lassen, da du FAllShoots.Delete nicht aufrufts. Übrigens führt der Code zu einer Schutzverletzung, da der Speicherbereich für die Koordinaten zwar freigegen wird, aber eben nicht der Eintrag entfernt wird.