Bonjour,
J'ai besoin de faire en sorte qu'un objet fixe soit toujours tourné vers un point mobile, sur un plan orthonormé (2D).
J'utilise donc la fonction tan ex :
Cela fonctionne cependant je suis obligé de mettre des conditions lorsque une valeur ou l'autre est inférieur...Du coup je bricole un peu la chose par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 angle = (Math.tan((World.x - Objet.x) / (World.y-Objet.y))*(180/Math.PI));
Déjà j'aime pas ce genre de bricolage est il vraiment nécessaire ou connaissez vous une façon plus simple pour obtenir le résultat sans mettre 36000 conditions ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if ( Math.abs(Game.x - x) < Math.abs(Game.y - y) ){ if ( Game.y - y > 0 ){ d = (Math.tan((Game.x - x) / (Game.y-y))*(180f/(float)Math.PI))-90f; }else{ d = (Math.tan((Game.x - x) / (Game.y-y))*(180f/(float)Math.PI))+90f; } }
En plus, lorsque j'arrive sur les bords l'angle qui en résulte devient légèrement plus grand ce qui fait une saccade quand on passe de l'un à l'autre.
Merci si vous pouvez m'aider.
Partager