Huhu,
Ich arbeite gerade an einer Art Pong-klon.
Ich habe dort 2 Bälle eingebaut. Nun möchte ich, dass wenn sich die Bälle treffen diese in einem zufällig erzeugten Winkel (zwischen -90 und 90 Grad) abstoßen. Zwischen -90 und 90 Grad deshalb, weil die Bälle ja sonst wieder aufeinander zufliegen.
Die Koordinaten der Bälle sind als double gespeichert, ebenso die Geschwindigkeit von diesen.
Es funktioniert auch alles soweit, bis jetzt hab ich einfach eingestellt, dass sich die Bälle einfach um 180 Grad drehen und voneinander entfernen (Also speedX = -speedX und speedY = -speedY). Dies funktioneirt ohne Probleme
Ein Zufälligen winkel zu erzeugen ist ebenfalls kein problem:
Allerdings fehlt mir nun total der Ansatz. Wie berechne ich die neuen Werte für speedX und speedY?
Gegeben habe ich ja eigentlich nur den Winkel und die länge des neuen Vektors (Da sich alle Richtungen auf einem Halbkreis bewegen). Die Trigonometrie kann ich auch nicht anwenden, da mir der Rechte Winkel bzw. weitere werte fehlen.
Ich hoffe ich habe mein Problem verständlich geschildert ^^
Also entweder ich steh gerade total auf dem Schlauch oder ich denke einfach wieder zu kompliziert.
Vielen Dank für die Hilfe.
Gruß,
Woggle
Ich arbeite gerade an einer Art Pong-klon.
Ich habe dort 2 Bälle eingebaut. Nun möchte ich, dass wenn sich die Bälle treffen diese in einem zufällig erzeugten Winkel (zwischen -90 und 90 Grad) abstoßen. Zwischen -90 und 90 Grad deshalb, weil die Bälle ja sonst wieder aufeinander zufliegen.
Die Koordinaten der Bälle sind als double gespeichert, ebenso die Geschwindigkeit von diesen.
Es funktioniert auch alles soweit, bis jetzt hab ich einfach eingestellt, dass sich die Bälle einfach um 180 Grad drehen und voneinander entfernen (Also speedX = -speedX und speedY = -speedY). Dies funktioneirt ohne Probleme
Ein Zufälligen winkel zu erzeugen ist ebenfalls kein problem:
Java:
//Zufälliger Winkel zwischen -90 und 90 Grad erzeugen
Random random = new Random();
int winkel = random.nextInt(181) - 90;
Allerdings fehlt mir nun total der Ansatz. Wie berechne ich die neuen Werte für speedX und speedY?
Gegeben habe ich ja eigentlich nur den Winkel und die länge des neuen Vektors (Da sich alle Richtungen auf einem Halbkreis bewegen). Die Trigonometrie kann ich auch nicht anwenden, da mir der Rechte Winkel bzw. weitere werte fehlen.
Ich hoffe ich habe mein Problem verständlich geschildert ^^
Also entweder ich steh gerade total auf dem Schlauch oder ich denke einfach wieder zu kompliziert.
Vielen Dank für die Hilfe.
Gruß,
Woggle