Einzelnen Beitrag anzeigen

busybyte

Registriert seit: 15. Sep 2006
165 Beiträge
 
#494

Re: Andorra 2D [Ver. 0.30 STABLE, 04.01.08]

  Alt 26. Feb 2008, 18:59
Ich kann mich auch irren (habe den Source noch nicht heruntergeladen) ,
aber wenn Flist vom Typ Array of TSprite ist,dann rufst Du immer wieder die gleiche Procedure auf ohne
CollisionDone zu setzen.Code gekürzt,zur Übersicht.
Delphi-Quellcode:
procedure TSprite.Collision2;
begin
   if (Self<>FEngine.FCollisionSprite) and
        OverlapRect(FEngine.FCollisionRect,BoundsRect) and
        TestCollision(FEngine.FCollisionSprite) then
    begin
      if FEngine.FCollisionSprite.Deaded or (not FEngine.FCollisionSprite.CanDoCollisions) then //<-
        FEngine.CollisionDone := true; //<-
 
  if not FEngine.FCollisionDone then //<-
    begin
      for i := 0 to FList.Count - 1 do
      begin
        FList[i].Collision2; //<-
//if NOT FList[i] =FEngine.FCollisionSprite.Deaded or (not FEngine.FCollisionSprite.CanDoCollisions) then Endlos-Loop
        if FEngine.CollisionDone then
        begin
          break;
        end;
I love DiscCat
  Mit Zitat antworten Zitat