AGB  ·  Datenschutz  ·  Impressum  







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

Zusammen Stoß ?

Ein Thema von mimi · begonnen am 13. Feb 2003 · letzter Beitrag vom 28. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Zusammen Stoß ?

  Alt 13. Feb 2003, 16:10
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 ?
Michael Springwald
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#2
  Alt 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...
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#3
  Alt 13. Feb 2003, 17:51
Das ist mir soweit klar
Und wie sieht das im Qullcode aus ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#4
  Alt 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...
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#5
  Alt 13. Feb 2003, 17:58
Das Problem ist dabei:
das raumschiff kann sich nur in x richtung bewegen und der Schuß nur in Y.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#6
  Alt 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!
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#7
  Alt 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.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#8
  Alt 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]
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#9
  Alt 26. Feb 2003, 18:32
Das Forum hat meine Leerzeichen gekillt !

das komische gebilde oben in meinen Beitrag soll eigentlich ein Rechteck sein !
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#10
  Alt 26. Feb 2003, 18:41
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
  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 15:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz