Einzelnen Beitrag anzeigen

Edlmann

Registriert seit: 19. Nov 2010
212 Beiträge
 
#1

[Gelöst] Aussortieren bei TList

  Alt 17. Mär 2011, 11:36
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

Geändert von Edlmann (17. Mär 2011 um 12:22 Uhr)
  Mit Zitat antworten Zitat