AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kleines Pferdespiel

Ein Thema von zapper54 · begonnen am 2. Jan 2010 · letzter Beitrag vom 18. Jan 2010
Antwort Antwort
Seite 3 von 3     123   
Leanahtan

Registriert seit: 5. Jun 2009
62 Beiträge
 
Turbo Delphi für Win32
 
#21

Re: Kleines Pferdespiel

  Alt 7. Jan 2010, 21:00
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?
  Mit Zitat antworten Zitat
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#22

Re: Kleines Pferdespiel

  Alt 8. Jan 2010, 14:06
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.
  Mit Zitat antworten Zitat
zapper54

Registriert seit: 14. Nov 2009
28 Beiträge
 
Delphi 7 Enterprise
 
#23

Re: Kleines Pferdespiel

  Alt 17. Jan 2010, 18:06
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?
  Mit Zitat antworten Zitat
Blup

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

Re: Kleines Pferdespiel

  Alt 18. Jan 2010, 09:14
TObjectList ist eine fertige Klasse die Delphi in der Unit "Contnrs" zur Verfügung stellt.
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr.
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