Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Zusammen Stoß ? (https://www.delphipraxis.net/2915-zusammen-stoss.html)

mimi 13. Feb 2003 16:10


Zusammen Stoß ?
 
Hallo,
ich Delphi 5 Standart und ich nutze DelphiX.

Jetzt möchte ich in meinem neuen Spiel eine zusammen stoß prüfen:
das Raumschiff(Dreieck) und den Schuß(Krei) wenn die zusammengestoßen sind möchte ich eine ShowMessage haben, wie geht das ?

janjan 13. Feb 2003 17:49

Mal ein kleines Beispiel:

du hast zwei Kreise, der eine ist das Raumschif und der andere der Komet. Das Raumschiff hat den Durchmesser von 20 und der Komet von 10. Wenn du jetzt laufend den Abstand beider Objekte überprüfst und merkst, das der Abstand kleinergleich 15 ist, dann weißt du das die beiden objekte ich berühren. So in etwa kannste das dann auch mit anderförmigen Objekten machen...

mimi 13. Feb 2003 17:51

Das ist mir soweit klar ;)
Und wie sieht das im Qullcode aus ?

janjan 13. Feb 2003 17:57

Da kann ich dir jetzt keinen fertigen Quelltext anbieten, du musst schon ein bisschen mehr von deinem Programm verraten, z.b. wie du die Positionen der Objekte speicherst, wie du die Dinger bewegst, was für ein Koordinatensystem du benutzt...

mimi 13. Feb 2003 17:58

Das Problem ist dabei:
das raumschiff kann sich nur in x richtung bewegen und der Schuß nur in Y.

phlux 13. Feb 2003 18:04

Dann musst du gucken wann der Schuss die gleiche x Koordinate mit dem Raumschiff hat, bzw. y Koordinate. Streng dein Hirn mal an!

mimi 15. Feb 2003 16:27

Ich habe einen gazen Tag damit verbracht, so eine Funktion zu schreiben, aber ohne erfolg.

könntes du mir mal bitte ein beispiel schreiben ?
wie so was aussehen muss ?

also das eine raumschiff kann sich nur in X Richtung bewegen und der Schuß kann sich nur in Y richtung bewegen.

braingrenade 26. Feb 2003 18:31

Moin Mimi !

hab ausversehen deinem alten Beitrag geantwortet !

Aber jetzt weiß besser was du meinst.

AAaalso :

Du brauchst als erstes einen kasten um die beiden objekte ,
dass heisst eigentlich nur die Koordinaten von 8 Punkten.
Code:
*---*---*    obere  3 Kordinaten 1 2 3
!       ! 
!       !
*       *   mittlere 3  Koord.    4   5
!       ! 
!       !
*---*---*   untere 3  Koord      6 7 8
* = Punkt von dem du die Koordinatenbrauchst

So, nun hast du diese 8 koordinaten in dem Object gespeichert,
aber du musst ja noch vergleichen !

da musst du einfach für jeden punkt kucken ob er zwischen den
oberen , mitleren oder unteren koordinaten des gegners ist.

Delphi-Quellcode:
if (gegner.punkt[1].x > schiff.punkt[1].x) and
(gegner.punkt[1].x < schiff.punkt[3].x) and
(gegner.punkt[1].y > schiff.punkt[1].y) and
(gegner.punkt[1].y < schiff.punkt[6].y) then Tod(Sender);
So in die art musst du Vorgehen , aber halt noch für jeden Punkt,
das kansst du ja mit ner For Schleife machen .

Viel Spaß!

[edit=Daniel B]Code-Tags gesetzt; MfG Daniel B.[/edit]

braingrenade 26. Feb 2003 18:32

Das Forum hat meine Leerzeichen gekillt !

das komische gebilde oben in meinen Beitrag soll eigentlich ein Rechteck sein !

Daniel B 26. Feb 2003 18:41

Zitat:

Zitat von braingrenade
Das Forum hat meine Leerzeichen gekillt !
das komische gebilde oben in meinen Beitrag soll eigentlich ein Rechteck sein !

Ich habe mal Code-Tags gesetzt. Jetzt stimmt es wieder. Die Courier New-Schriftart hat man nur beim schreiben und editieren, jedoch nicht beim Lesen.

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr.
Seite 1 von 2  1 2      

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