Thema: Delphi Collisionsabfrage

Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2
  Alt 16. Jun 2002, 10:57
Dein Code:

Code:
    [b]if[/b] (p^.x > Image2.Left)
      [b]and[/b] (p^.x < Image2.Left + Image2.Width)
      [b]and[/b] (p^.y < Image2.Top)
Das ist wohl die eigentliche Kollisionsabfrage. Nun, wenn du abfragst, ob x zwischen Left und Left + Width liegt, musst du auch abfragen, ob y zwischen Top und Top + Height liegt. Weil so wird auch ein Schuss ein Treffer sein, der unterhalb des Zielobjekts liegt.

Setzt du bHit nach der Abfrage auch wieder auf false?

Und musst du beim Löschen der Schüsse nicht zum einen den Schuss selbst löschen (machst du ja mit Dispose()), als auch den Eintrag in der TList (TList.Delete())? Steht auch in dem anderen Thread drin, aber im hier geposteten Code nicht...

Mir ist außerdem folgende Zeile unklar:

Code:
[b]if[/b] (penemy^.y > Width) [b]or[/b] (DeleteAll) [b]then[/b]
Warum soll y größer als Width sein?
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat