Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#2

Re: [Andorra] - Player Springen Funktion einbauen.

  Alt 11. Nov 2009, 21:09
Betrachte dir mal die Funktionen "Collision" und "DoCollision": Damit bekommst du es automatisch mit, wenn eine Kollision mit einem anderen Objekt stattfindet.

Beispiel (nur als Gedankenanstoß verwenden):
Delphi-Quellcode:
type
  TMySprite = class(TSprite)
    private
      FHasCollision: boolean;
    protected
      procedure DoCollision(Sprite: TSprite; var Done: boolean);override
      procedure DoMove(TimeGap: Double);override;
  end;

[...]

procedure TMySprite.DoMove(TimeGap: Double);override;
begin
  //Bewege die Figur...
  

  //Prüfe auf Kollisionen
  FHasCollision := false;
  Collision;

  if FHasCollision then
  begin
    //Mache die Bewegung rückgängig
  end;
end;

procedure TMySprite.DoCollision(Sprite: TSprite; var Done: boolean);override;
begin
  if Sprite is TWall then
    FHasCollision = true;
end;
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat