Einzelnen Beitrag anzeigen

Benutzerbild von g0rmed
g0rmed

Registriert seit: 3. Apr 2007
Ort: Sülzetal
64 Beiträge
 
Delphi 2005 Personal
 
#326

Re: Andorra 2D [Ver. 0.20 ALPHA 2, 05.10.07]

  Alt 19. Okt 2007, 11:42
Ich hatte gestern nen Fehler in AdPhysics.pas in Zeile 474-496:
r.Left war 0, aber als die for-schleife, die anstatt der "while (ax <= r.Right) and (ax < r.Left) do" steht, beim letzten Durchlauf war, wurde ax auf 65000 oda so gesetzt, dann gab es ne Exeption

Als ich es so "korrigiert" hatte hat es funktioniert, aber ich weiß nicht warum es vorher falsch war, bzw. nicht funktionert hat...


Delphi-Quellcode:
procedure TPhysicalSprite.ActivateNeighbours;
var r:TRect;
    ax,ay,i:integer;
    List:TSpriteList;
begin
  r := GetCollisionField;
  ax := r.Left;
  while (ax <= r.Right) and (ax < r.Left) do
  begin
    for ay := r.Top to r.Bottom do
    begin
      List := Parent.SpriteField.Items[ax,ay];
      for i := 0 to List.Count - 1 do
      begin
        if (List[i] <> self) and (List[i] is TPhysicalSprite) and
           (TPhysicalSprite(List[i]).Typ <> ptStatic) then
        begin
          TPhysicalSprite(List[i]).Active := true;
        end;
      end;
    end;
  end;
end;
Hans
"Wenn es immer später und später wird, wie kann es dann einmal früh sein?" Max
  Mit Zitat antworten Zitat