2017-10-14 3 views
0

Dans mon jeu, j'utilise ce code pour tirer vers certain emplacement (mouseX/Y). Si le mouseX/Y est même la balle va dans droite direction, mais quand mouseX/Y est différent (par exemple 20 et 10), puis la balle va dans tout mauvaise direction. Merci pour l'aide!Le tir vers la souris se comporte bizarrement - Java

double bulletVelocity = 3.0; //however fast you want your bullet to travel 
//mouseX/Y = current x/y location of the mouse 
//originX/Y = x/y location of where the bullet is being shot from 

double angle = Math.atan2(mouseX - originX, mouseY - originY); 
o.setVelX((float)((bulletVelocity) * Math.cos(angle))); 
o.setVelY((float)((bulletVelocity) * Math.sin(angle))); 
+2

Les documents pour [atan2] (https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#atan2 (double,% 20double)) indiquent que les entrées doivent être (y, x), est-ce le problème que vous rencontrez? – Haem

+0

Oui c'est! Je vous remercie. – Nithorg

+1

@ HeikkiMäenpää L'un ou l'autre de vous, s'il vous plaît répondez ou supprimez la question, afin d'obtenir ce hors de la liste des questions sans réponse. – Yunnosch

Répondre

0

Docs pour atan2 dire que vous devez saisir les arguments pour (y,x). C'est un départ bizarre de l'ordre typique probablement alimenté par l'ordre dans lequel vous avez entré ceux à la division.