Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Kleines Pferdespiel (https://www.delphipraxis.net/145479-kleines-pferdespiel.html)

Leanahtan 7. Jan 2010 20:00

Re: Kleines Pferdespiel
 
Hmm, also für eine Kollisionsabfrage sollte man nicht unbedingt nur prüfen, ob sich die Ränder berühren (also '='). Denn wenn sich das Pferd in einem Rechenschritt mal um mehrere Pixel bewegt, könnte es in das Hindernis eindringen. Besser ist da imho mit Bereichen (>= bzw. <=) zu arbeiten, oder hab ich was falsch verstanden?

zapper54 8. Jan 2010 13:06

Re: Kleines Pferdespiel
 
Zitat:

Hmm, also für eine Kollisionsabfrage sollte man nicht unbedingt nur prüfen, ob sich die Ränder berühren (also '='). Denn wenn sich das Pferd in einem Rechenschritt mal um mehrere Pixel bewegt, könnte es in das Hindernis eindringen. Besser ist da imho mit Bereichen (>= bzw. <=) zu arbeiten, oder hab ich was falsch verstanden?
Das hast du richtig verstanden. Ich wollte das auch so machen. Leider bin ich grad in meiner Schule, und wir machen grad was anderes. Ich werde aber die Möglichkeiten durchtesten. Ich sag wieder bescheid, wenn ich eine Frage habe oder alles ok ist.

zapper54 17. Jan 2010 17:06

Re: Kleines Pferdespiel
 
So, ich melde mich doch noch einmal.

In letzter Zeit hatte ich einfach keine Lust mehr, daran zu basteln.
Zitat:

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;
Das hört sich für mich ganz gut an, aber wie ist das mit der TObjektList gemeint? Wie erstellt man die?

Blup 18. Jan 2010 08:14

Re: Kleines Pferdespiel
 
TObjectList ist eine fertige Klasse die Delphi in der Unit "Contnrs" zur Verfügung stellt.
Zitat:

Zitat von Delphi-Hilfe zu 'TObjectList'
Mit TObjectList können Sie eine Liste von Objekten speichern und verwalten. ...

Bitte selbständig weiterlesen.

Erstellen in diesem Fall:
Delphi-Quellcode:
Hindernisse := TObjectList.Create;
Hindernisse.OwnsObjects := False; // da die Hindernisse vermutlich dem Formular gehören


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz