Thema: Delphi Kleines Pferdespiel

Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.477 Beiträge
 
Delphi 12 Athens
 
#18

Re: Kleines Pferdespiel

  Alt 7. Jan 2010, 08:35
Wenn eine Liste der Hinderniss vorliegt, brauchst du nur die Rechtecke auf Überschneidung zu prüfen.
z.B. so:
Delphi-Quellcode:
var
  Hindernisse: TObjectList;

{...}
Hindernisse := TObjectList.Create;
Hindernisse.OwnsObjects := False;
Hindernisse.Add(ImageHindernis1);
{...}

function IsKollision(APferdImage: TImage): Boolean;
var
  Hinderniss: TObject;
  Rx, R1: TRect;
begin
  R1 := APferdImage.BoundsRect;
  for i := 0 to Hindernisse.Count - 1 do
  begin
    Hinderniss := Hindernisse[i];
    if Hinderniss is TImage then
    begin
      Result := IntersectRect(Rx, R1, TImage(Hinderniss).BoundsRect);
      if Result then
        Exit;
    end;
  end;
  Result := False;
end;
Eine Kollisionsprüfung auf Pixelebene ist aber wesentlich aufwendiger.
Die VCL ist einfach nicht für Spiele gedacht.
Auf Hier im Forum suchenAndorra hat Matze ja bereits hingewiesen.
  Mit Zitat antworten Zitat