Kollision zwischen 2 Kreisen

Hi,

Ich möchte verweg sagen, ich bin ein blutiger Anfänger.

Ich probier mich an einem Spiel, welches eine Mischung aus Pong und AirHockey sein soll.
Meine beiden Spieler sind auf ihrer Spielseite jeweils freibeweglich und der Ball wird mit einer richtung von der Mitte aus initialisiert.

Ich verwende die Slickengine dabei. Die Spieler sowie der Spielball sind als Circle definiert, sodass ich mit die Kollisionsabfrage mittels intersect machen kann.

Ich würde es gerne über vektoren machen, bekomm es allerdings nicht hin.
Gedacht habe ich mir, dass aus dem Mittelpunkt und der Geschwindigkeitsattribute mir den Richtungsvektor des Balles geben lassen kann und ihm dann an einem zweiten Vektor spiegel. Dieser entsteht durch den Mittelpunkt des Balles und den Mittelpunkt des Spielers mit dem gerade die Kollision stattfindet. Nur weiß ich leider nicht wie ich das in Java-Slick umsetzen kann.

Das wäre jetzt der Anfang meiner Überlegung:
Java:
    	if(circle.intersects(player2.player2)){
    		Vector2f normal = new Vector2f(circle.getCenterX(),circle.getCenterY());
			Vector2f direction = new Vector2f(this.xSpd,this.ySpd);
 
Hi,

Ich hab im Internet jetzt folgende Formel gefunden:

R' = Reflektionsvektor;
N = normale (normiert);
R = Richtungsvektor (normiert);

R' = 2 * Skalarprodukt(N, R) * N - R

Diese habe ich nun versucht anzuwenden:

Java:
    	if(circle.intersects(player2.player2)){
    		//Erstellt normalisierten Richtungsvektor des Spielballs
    		Vector2f normalc = new Vector2f(circle.getCenterX(),circle.getCenterY());
			Vector2f directionc = new Vector2f(this.xSpd,this.ySpd);
			Vector2f cr = directionc.sub(normalc);
			Vector2f crn = cr.normalise();
    		//Erstellt normalisierte Normale zwischen Spieler2 und dem Spielball
			Vector2f normalp2 = new Vector2f(player2.getCenterX(),player2.getCenterY());
			Vector2f directionp2 = new Vector2f(circle.getCenterX(),circle.getCenterY());
			Vector2f p2rc = directionp2.sub(normalp2);
			Vector2f p2rcn = p2rc.normalise();
			//Reflektiert den Richtungsvektor des Spielballs an der Normalen, nach der Formel
			Vector2f reflect1 = p2rcn.dot(crn);
			Vector2f reflect2 = 2 * reclect1 * crn - p2rcn;
			//Gibt die neue Richtung aus
			this.xSpd = reflect2.x;
			this.ySpd = reflect2.y;
			
    	}

Bei Zeile 13 und 14 gibt er mir aus, dass reflect1 ein float sein muss, allerdings weiß ich nicht wie ich das umschreiben muss.
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ohne das nachgerechnet zu haben, sowas wie
float reflect1 = p2rcn.dot(crn);
Vector2f reflect2 = new Vector2f(2 * reclect1 * crn.x - p2rcn.x, 2 * reclect1 * crn.y - p2rcn.y);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Androbin Kollision zwischen Raster und Nicht-Raster Spiele- und Multimedia-Programmierung 2
M Asteroids Clone: Kollision zwischen Schuss und Feind Spiele- und Multimedia-Programmierung 13
B Kollision Spiele- und Multimedia-Programmierung 5
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
N Kollision von zwei ImageIcons Spiele- und Multimedia-Programmierung 8
D Kollision funktioniert unten aber nicht oben Spiele- und Multimedia-Programmierung 4
J Kollision (libgdx) Spiele- und Multimedia-Programmierung 2
S Kollision Spiele- und Multimedia-Programmierung 2
J Kollision genau erkennen mit intersects Spiele- und Multimedia-Programmierung 27
K a* kollision der einheiten Spiele- und Multimedia-Programmierung 3
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
F Rechteck Kollision Spiele- und Multimedia-Programmierung 10
H 2- D Kollision Spiele- und Multimedia-Programmierung 14
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
O Kollision Polygon und Rechteck Spiele- und Multimedia-Programmierung 2
S Pacman Kollision von Münzen und Mauern Spiele- und Multimedia-Programmierung 11
P Gridpane Kollision Spiele- und Multimedia-Programmierung 3
L Kollision soll nur an oberer Seite (Breite) möglich sein Spiele- und Multimedia-Programmierung 6
Hercules Kisten Kollision Spiele- und Multimedia-Programmierung 2
S 3D-Kollision mit zwei ArrayLists Spiele- und Multimedia-Programmierung 7
T Pixelgenaue Kollision Spiele- und Multimedia-Programmierung 5
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
S Kollision tile-based 2D Plattformer Spiele- und Multimedia-Programmierung 2
D Greenfoot Kollision Spiele- und Multimedia-Programmierung 5
D Kollision verhindern Spiele- und Multimedia-Programmierung 2
R Frage zur Kollision Spiele- und Multimedia-Programmierung 5
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Kr0e Kollision zweier Kugeln... Wo ist Newton ?? Spiele- und Multimedia-Programmierung 9
Helgon Kollision von jeder Seite des Blocks Spiele- und Multimedia-Programmierung 3
Fab1 Kollision die 100ste Spiele- und Multimedia-Programmierung 5
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
P PingPong Spiel - Kollision Spiele- und Multimedia-Programmierung 2
C Bitmaske und Kollision Spiele- und Multimedia-Programmierung 2
J Spielprogrammierung mit bewegung und kollision Spiele- und Multimedia-Programmierung 24
S Kollision Kreis Rechteck Spiele- und Multimedia-Programmierung 8
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
baddestpoet pixelgenaue Kollision Spiele- und Multimedia-Programmierung 4
S Kollision in 2D Spiele- und Multimedia-Programmierung 12
B Gedrehte Rechtecke Kollision Spiele- und Multimedia-Programmierung 4
J Kollision mit Block (Wand) Spiele- und Multimedia-Programmierung 11
C Kollision in Java3D Spiele- und Multimedia-Programmierung 4
J Kollision von Objekten Spiele- und Multimedia-Programmierung 7
F Bewegung/Kollision von Objekten auf Tastendruck Spiele- und Multimedia-Programmierung 6
Z Kollision Spiele- und Multimedia-Programmierung 3
F Kollision für Arkanoid Spiele- und Multimedia-Programmierung 2
N Kollision abfragen Spiele- und Multimedia-Programmierung 3
K Sprites / Kollision Spiele- und Multimedia-Programmierung 3
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
E Zwischen A* und Luftlinie switchen Spiele- und Multimedia-Programmierung 9
S Kollisionsabfrage zwischen Rechteck und Polygon Spiele- und Multimedia-Programmierung 1
E LWJGL Switchen zwischen gluOrtho und gluPerspective Spiele- und Multimedia-Programmierung 0
aze Schnittmenge zwischen Linie und einer Area wegschneiden Spiele- und Multimedia-Programmierung 3
P Störender Lag zwischen 2 Clips Spiele- und Multimedia-Programmierung 11
F Winkel zwischen Vektoren Spiele- und Multimedia-Programmierung 5
H Wie erzeuge ich eine Zufallszahl zwischen 0 und 8 ? Spiele- und Multimedia-Programmierung 7
V Winkel zwischen zwei Vektoren Spiele- und Multimedia-Programmierung 1
C Objekt zwischen 2 Geraden? Spiele- und Multimedia-Programmierung 3
h0b0 Umrechnung zwischen Bildschirm und Weltkoordinaten Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben