Delphi-PRAXiS

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 15: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 16: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 16:51

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

janjan 13. Feb 2003 16: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 16:58

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

phlux 13. Feb 2003 17: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 15: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 17: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 17:32

Das Forum hat meine Leerzeichen gekillt !

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

Daniel B 26. Feb 2003 17: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:

mimi 26. Feb 2003 19:58

Danke! Aber soweit bin ich auch schon gekommen;)
Also ich habe volgendes problem:
ich habe ein Kreis und ein Dreiec, nun will ich nach schauen ob sie zusammen gestoßen sind, aber wie mache ich das ?
habe es ebend noch mal versucht es geht einfach nicht !

janjan 26. Feb 2003 20:11

Verstehst du was von Vektorrechnung? Wenn ja, dann kannste das Problem über Abstand Grade-Punkt lösen, wenn nicht, dann musste dir was anderes suchen.

braingrenade 27. Feb 2003 07:17

Wilsst du also ne Pixelgenaue Abfrage oder wie meinst du das ?

mimi 27. Feb 2003 14:57

Ich habe zwei Objekte eins ist ein Dreiec und das andre ist ein Kreis, nun möchte ich wissen ob sie zusammen gestoßen sind, aber wie bekommen ich das raus ?
Jemmand eine idee ?
Wenn möglich, dann möchte ich eine genaue Colisions abfrage,
was jetzt "Pixelgenaue Abfrage" genau heißt, weiß ich leider noch nicht !

Vektorrechnung:
neine ich verstehe davon leider überhaupt nichts, aber könntes du mir das mal genau erklären janjan ? dann könnte ich dies vielicht einsetzen ;)

braingrenade 27. Feb 2003 15:03

Jo, ne pixelgenaue Abfrage , damit mein ich das praktisch jeder pixel ausenrum um dein dreieck abgefragt wird und jeder von deinem Kreis und diese Koordinaten dann der jeweiligen position der Objekte angepasst werden und dann schlussendlich verglichen werden !

hab ich schon programmiert , ist aber verdammt kompliziert , ich könnte dir das programm und den Code geben aber ist halt verdammt schwierig bei dem Code den Durchblick zu behalten!

Wennn du willst poste mach ich demnächst noch nen Eintrag wo die Datei dabei ist !( dauert aber noch denn momentan bin ich mit nem Mac im Internet und da kann ich die Windows dateien nich draufkriegen !)

mimi 27. Feb 2003 16:30

Ja! das währe echt toll, wenn du mir das senden, bzw. posten könntes !
Weil ich bekommen das einfach nicht hin :( :(

PS
Kann man von eine mac wirklich keine Windows dateien lesen ?

braingrenade 28. Feb 2003 11:35

Normalerweise geht's glaub ich schon , aber der Mac hat kein Disketten-Laufwerk ! (Muss erst noch das Netzwerk in Gang Kriegen und Dann Post ich nen neuen Beitrag)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 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