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:
getroffen1 := false;
{...}
End else
Begin
getroffen1 := false;//dass kannst du weglassen!!
End;
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):
Delphi-Quellcode:
if (H = h) OR
(H < h) then
explosion:=true;
Du musst doch einfach nur abfragen, ob die Flughöhe gleich oder niedriger als die Gesamthöhe des Hindernisses ist.
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...
LG, hans ditter