Einzelnen Beitrag anzeigen

Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#975

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]

  Alt 2. Sep 2009, 15:37
Hi, tatsächlich hast du Recht, ich weiß auch nicht, was da vorhin falsch war.
Allerdings, bei folgender DoMove procedure
Delphi-Quellcode:
procedure TEinheit.DoMove(TimeGap: Double);
var A, B, AB, BB: Integer;
begin
inherited DoMove(TimeGap);
A := round(X);
B := round(X+200);
AB := round(Y);
BB := round(Y+200);


if (Aim.X in [A..B]) and (Aim.Y in [AB..BB]) then // er bleibt stehen
begin
  AnimActive := false;
  AnimLoop := false;
  FXSpeed := 0;
  FYSpeed := 0;
  case FDirection of //das kommt später
    dirS: AnimPos := 64;
    dirSW: ;
    dirW: ;
    dirNW: ;
    dirN: ;
    dirNE: ;
    dirE: ;
    dirSE: ;
  end;


end
else // er läuft weiter
begin
    X := X + FXSpeed * TimeGap;
    Y := Y + FYSpeed * TimeGap;
end;

Collision;
end;
bleibt die Figur niemals stehen...

Weiters durchläuft er auch ein Haus bei folgender DoCollision:
Delphi-Quellcode:
procedure TEinheit.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
inherited;
  if (Sprite is THaus) then
  begin
    AnimActive := false;
    AnimLoop := false;
    FXSpeed := 0;
    FYSpeed := 0;
    case FDirection of
      dirS: AnimPos := 64;
      dirSW: ;
      dirW: ;
      dirNW: ;
      dirN: ;
      dirNE: ;
      dirE: ;
      dirSE: ;
    end;
  end;

end;
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat