![]() |
Kollisionsabfrage
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
wie kann man am Besten die Kollision des Raumschiffs mit einem dynamischen Bild (Planeten) auf der Paintbox feststellen? Ich möchte verhindern, dass das Raumschiff durch die Planeten fliegen kann, jedoch bestimmen, welcher Planet in der unmittelbaren Nähe ist... -> Bild siehe Anhang mfg devnull |
Re: Kollisionsabfrage
Wenn die Planeten und das Raumschiff auch eckig sein dürfen:
Delphi-Quellcode:
Die einzelnen Daten hängen natürlich davon ab, wie du die Position und Maße der Objekte speicherst. Ich bin hier von Phantasieklassen ausgegangen, dürfte aber eigentlich selbsterklärend sein ;-)
// -----------------------
function RectIntersect(A, B: TRect; Offset: Integer): Boolean; begin result := not((A.Right + Offset <= B.Left) or (A.Bottom + Offset <= B.Top) or (A.Top - Offset >= B.Bottom) or (A.Left - Offset >= B.Right)); end; // ----------------------- for i := 0 to Planets.Count - 1 do begin if RectIntersect( Rect(Planets[i].X, Planets[i].Y, Planets[i].X + Planets[i].Width, Planets[i].Y + Planets[i].Height), Rect(Starship.X, Starship.Y, Starship.X + Starship.Width, Starship.Y + Starship.Height), , 0) then // Kollision end; |
Re: Kollisionsabfrage
Danke, jetzt funzt alles :bouncing4: :bouncing4:
|
Re: Kollisionsabfrage
@devnull: Mache das Bild bitte als Anhang.
Danke, ...:cat:... |
DP-Maintenance
Dieses Thema wurde von "sakura" von "Sonstige Fragen zu Delphi" nach "Multimedia" verschoben.
|
Re: Kollisionsabfrage
@sakura: Bild ist nun im Anhang
[EDIT]Neue Frage, neue Eintrag[/EDIT] mfg devnull |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz