Ballkollision AirHockey

Schnellsch

Mitglied
Hallo Java Freunde,

mein Problem ist, dass ich mich bei den Ballkollisionen nicht auskenne. Ich möchte ein AirHockey programmieren und weis nicht wie man die Ball auf Ball Kollision mit mehreren Grad realisiert. Würde mich über Antworten freuen, danke.

mfG Schnellsch
 

agentone

Bekanntes Mitglied
mit mehreren Grad
???

Ball auf Ball Kollision

Ich gehe davon aus, dass das ein 2D-Spiel ist. Folglich kennst du die (x,y)-Koordinaten und die Radien der Bälle (bzw. Kreise). Wenn du jetzt überprüfen willst, ob diese sich überschneiden, berechnest du folgendes:

abstand=wurzel( (ax-bx)² + (ay-by)² )
wenn (abstand<ar+br) dann "kollision" sonst "keine kollision"

ax, ay, ar sind x- und y-Koordinaten und Radius des einen Balls
bx, by, br sind x- und y-Koordinaten und Radius des anderen Balls
 

Schnellsch

Mitglied
hab schon vergeblich danach gesucht, finde einfach nichts, kann mir wer helfen? Das Problem nochmal: will 2 Kreis von einander abprallen lassen(mit 360 verschiedenen Winkeln)
 

Illuvatar

Top Contributor
So, weil ich grad Lust drauf hab... das würdest du aber bestimmt auch bei Google finden:

Die Orte der Bälle beschreibst du mit 2 Vektoren r1 und r2, ihre Geschwindigkeiten mit v1 und v2.
Die Geschwindigkeiten musst du an der Gerade, die genau zwischen den Bällen durchgeht, spiegeln. Das geht so:
- Sei
eq.latex
und v die Geschwindigkeit, die du spiegeln willst.
- Sei
eq.latex
(senkrecht auf x, auch normiert)
- Dann ist die gespiegelte Geschwindigkeit:
eq.latex
(viel expliziter gehts jetzt nicht mehr)

- Und dann müsstest du theoretisch die gespiegelten Geschwindigkeiten zur Impuls- und Energieerhaltung noch neu skalieren, wenn du das willst.

Disclaimer: Das ist alles aus dem Kopf und ungetestet ;)

Edit: Sorry dass ich sowohl die Vektoren als auch die Koordinaten x und y genannt hab - im Nachhinein vllt etwas doof ;) Die Sachen im Index sind aber immer die Koordinaten ;)
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben