Hey
DP,
ich baue gerade ein kleines Minigame, bei dem man unter anderem schießen kann (Ja ich weiß, ziemlich kreativ
) und habe für die einzelnen Schüsse
eine Liste vom Typ TLIst erstellt, in welche ich Records mit den Daten von meinem Schuss schreibe. Soweit so gut, auslesen und alles funktioniert auch wunderbar,
das einzige was einfach nicht funktionieren will ist das aussortieren von Schüssen, die nicht mehr gezeichnet werden müssen. Momentan sieht meine Methode dafür
wie folgt aus:
Delphi-Quellcode:
procedure TPlayer.SortShots;
var x: Integer;
temp: PShot;
begin
x := 0;
while not x > Shots.Count -1 do
begin
temp := PShot(Shots.Items[x]);
if temp.Timer <= 0 then
begin
Shots.Remove(temp);
dispose(temP);
end
else
inc(x);
end;
end;
Was meiner Meinung nach funktionieren müsste. Shots ist meine TList, und der Typ PShot ist wie folgt deklariert:
Delphi-Quellcode:
type
PShot = ^TShot;
TShot = record
X, Y: Single;
MRot: Single;
Timer: Integer;
end;
Allerdings bleibt die Länge meiner TList immer gleich hoch, egal ob ich sortieren lasse oder nicht, und darunter leidet die Performance auf Dauer.
Weiß jemand von euch warum das ganze nicht funktioniert?
Lg, Edlmann