AGB  ·  Datenschutz  ·  Impressum  







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

Helikopter-spiel

Ein Thema von Tim1993 · begonnen am 12. Jan 2011 · letzter Beitrag vom 13. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
Tim1993

Registriert seit: 29. Nov 2010
6 Beiträge
 
#1

AW: Helikopter-spiel

  Alt 12. Jan 2011, 16:30
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...
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Helikopter-spiel

  Alt 12. Jan 2011, 16:32
Na dann zeig doch mal dein If.

Alternativ ist in dem verlinkten Thread sogar ein Beispiel mit Images drin...
  Mit Zitat antworten Zitat
Tim1993

Registriert seit: 29. Nov 2010
6 Beiträge
 
#3

AW: Helikopter-spiel

  Alt 12. Jan 2011, 16:34
Na dann zeig doch mal dein If.

Alternativ ist in dem verlinkten Thread sogar ein Beispiel mit Images drin...
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;

Geändert von Tim1993 (12. Jan 2011 um 16:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Helikopter-spiel

  Alt 12. Jan 2011, 16:37
Benutze doch bitte die [DELPHI]-Tags für deinen Code, danke.

Und wo nutzt du da bitte IntersectRect? ...
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Tim1993

Registriert seit: 29. Nov 2010
6 Beiträge
 
#5

AW: Helikopter-spiel

  Alt 12. Jan 2011, 16:41
Was ist den IntersectRect bitte?
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Helikopter-spiel

  Alt 12. Jan 2011, 16:42
Hast du den von mir in Post #4 verlinkten Thread überhaupt angeguckt, oder einfach mein komplettes Post ignoriert?
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Helikopter-spiel

  Alt 12. Jan 2011, 17:17
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
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Helikopter-spiel

  Alt 12. Jan 2011, 16:43
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.
  Mit Zitat antworten Zitat
Tim1993

Registriert seit: 29. Nov 2010
6 Beiträge
 
#9

AW: Helikopter-spiel

  Alt 12. Jan 2011, 16:51
doch den Thread hab ich mir angesehen aber ich ich habs nicht verstanden...
ich ken IntersectRect und TRect nicht
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#10

AW: Helikopter-spiel

  Alt 13. Jan 2011, 07:11
doch den Thread hab ich mir angesehen aber ich ich habs nicht verstanden...
ich ken IntersectRect und TRect nicht
Und was hält Dich davon ab, in dem Fall einfach mal die Hilfe zu bemühen und nachzulesen? Falls Deine lokale Hilfe nicht funktionieren sollte, gibt es auch noch die DP-Referenz als Informationsquelle.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:44 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