![]() |
Helikopter-spiel
Hey Leute,
Ich brauche dringen hilfe bei der Kolisionsabfrage zweier obejekte, wobei beide objekte rechteckig sind.... Ich danke jetzt schon mal jedem der mir hilft :wink: |
AW: Helikopter-spiel
Was für Objekte? ( Shapes, Sprites, ...)
|
AW: Helikopter-spiel
das sind zwei images die aufeinander zufliegen
|
AW: Helikopter-spiel
![]() (Aber verständlich, dass man den Thread nicht findet, der ist immerhin schon ein paar Minuten alt!) |
AW: Helikopter-spiel
und wie macht man das?... ich hab schon einige versuche mit einer if-anweisung -wo ich den bereich angegeben habe- gemacht funktioniert aber leider nicht....
p.s.: Ich bin anfänger...:) |
AW: Helikopter-spiel
Na dann zeig doch mal dein If.
Alternativ ist in dem verlinkten Thread sogar ein Beispiel mit Images drin... |
AW: Helikopter-spiel
Zitat:
Delphi-Quellcode:
function Treffer (hindernishöhe, hindernisweite,hubschrauberweite,
hubschrauberhöhe :integer):boolean; var i1,i2 : integer; getroffen1,getroffen2,explosion : boolean; Begin getroffen1 := false; getroffen2 := false; explosion := false; for I1 := -40 to 40 do Begin if ( (hindernishöhe + -40 >= hubschrauberhöhe - 40) and (hindernishöhe + +40 <= hubschrauberhöhe + 40) ) then Begin getroffen1 := true; End else Begin getroffen1 := false; End; End; for I2 := 0 to 46 do Begin if ( (hindernisweite + 0 >= 0 ) and (hindernisweite + 46 <= hubschrauberweite + 46) or (hindernisweite= 46) ) then Begin getroffen2 := true ; End else Begin getroffen2 := false; End; End; If ( (getroffen1 = true) and (getroffen2 = true) ) then bEGIN explosion := true; end; result := explosion; End; |
AW: Helikopter-spiel
Benutze doch bitte die [DELPHI]-Tags für deinen Code, danke.
Und wo nutzt du da bitte IntersectRect? ... |
AW: Helikopter-spiel
Was ist den IntersectRect bitte?
|
AW: Helikopter-spiel
Hast du den von mir in Post #4 verlinkten Thread überhaupt angeguckt, oder einfach mein komplettes Post ignoriert? :shock:
|
AW: Helikopter-spiel
Was machen denn die zwei for-Schleifen da drin?! Du greifst doch nirgendwo auf den Index zu.
Ich nehme mal an, die Parameter stellen die x und y Werte der Mittelpunkte der Objekte dar und die Objekte haben jeweils 92x80 Pixel? Also ich würde das wirklich in TRect umwandeln und IntersectRect verwenden (siehe verlinkter Thread!!!!). Wird das einfachste sein. |
AW: Helikopter-spiel
doch den Thread hab ich mir angesehen aber ich ich habs nicht verstanden...
ich ken IntersectRect und TRect nicht :( |
AW: Helikopter-spiel
Wow, also, dass ist schon ziemlich heftig...
Erstmal: Wenn du einen boolean-Ausdruck schon auf false gesetzt hast und es dabei belassen willst, dann bruachst du den nicht nochmal false setzten:
Delphi-Quellcode:
Dann versteh ich auch nicht, wie du auf deine If-Abfrage kommst. Wenn du ein Hinderniss von der Höhe h hast und dein Helikopter, der in der Höhe H fliegt, dann kannst du doch einfach so abfragen, ob di kollidiert sind(ungeprüft):
getroffen1 := false;
{...} End else Begin getroffen1 := false;//dass kannst du weglassen!! End;
Delphi-Quellcode:
Du musst doch einfach nur abfragen, ob die Flughöhe gleich oder niedriger als die Gesamthöhe des Hindernisses ist.
if (H = h) OR
(H < h) then explosion:=true; Wenn du dann noch auf links und rechts dran vorbeifliegen prüfen willst, dann musst du da eben noch die Koordinaten des Hindernisses mit in die If-Abfrage einbauen. Wird dann ein wenig Schreibarbeit (vor allem musst du auf die richtige Verwendung der Klammern achten), aber dass ist auch nicht so schwer. Musst dir nur überlegen, wie das bei dir zusammenhängt. @DeepSea: Ja, scheint so... und: ich hab ja erst nicht geglaubt, dass der andere Thread wirklich erst ein paar Min alt ist, ist ja aber wirklich so... :shock: LG, hans ditter |
Dieses Thema wurde am "12. Jan 2011, 21:46 Uhr" von "Luckie" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Multimedia" verschoben.
|
AW: Helikopter-spiel
Zitat:
|
AW: Helikopter-spiel
eine trial and error Mentalität zwischendurch hat noch keinem Entwickler geschadet
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 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-2025 by Thomas Breitkreuz