Rebonjour!
J'ai un nouveau problème à vous soumettre:
Je dois pour mon jeu, créer une cible controler par la souris de l'utilisateur, jusque là, ça va, seulment le canon du char doit logiquement etre tourné vers l'endroit où se trouve la cible!! hihi! Et là, ça pose un gros gros problème.
J'ai reussi à faire rotationner mon canon autour d'un point de mon tank (c'est deja un exploit pour moi, lol).
Ce centre de rotation devient le centre (O) de mon repere.
J'utilise le theoreme de Pythagore pour calculer l'angle du triangle rectangle deduit des positions du centre de rotation et de la position du curseur (comme expliquer sur cette page
http://www.developpez.net/forums/showthread.php?t=95419).
J'ajoute à la technique trouvé sur la page précédente les propriété du cercle trigonometrique pour que l'angle du triangle soit projeter sur le bon quart du
repere de centre (O) et ainsi couvrir les 360° de liberté du curseur sur le repere polaire.
Cela fonctionne en gros, mais cela fonctione mal en detail. c'est à dire qu' a vitesse normal, l'objet qui subit la rotation disparait à certain angle de rotation et bug, mais quand on tourne rapidement la souris, ça fonctionne plutot pas mal.
Voici la partie de code qui traduit ce que je viens de dire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 int adj = cible_X-tank_X; int opp = cible_Y-tank_Y; double hyp = (adj^2+opp^2)^(1/2); double cosi_a = Math.abs(adj/hyp); double angl = Math.acos(cosi_a); double pi = Math.PI; double angle = 0; if (adj<0 && opp<0){angle= angl + pi;} if (adj>0 && opp<0){angle= -angl;} if (adj<0 && opp>0){angle= -(angl + pi);} if (adj>=0 && opp>=0){angle= angl;} c.setColor(new Color(100,60,80)); c.rotate(angle,tank_X,tank_Y); c.drawRect(tank_X-40,tank_Y-30,80,60);
Je peux peut-etre posté un .jar pour que vous voyez visuellemnt le résultat.
(D'ailleur j'ai un petit prob, quand je fais mon fichier .jar avec Eclipse, en precisant ma class Main, ben apres quand je double clique sur mon .jar, windows me dit qu'il trouve pas ma Class Main :s )
En espérant quelques soutiens, je vous souhaite une bonne soirée si vous m'avez lu jusque là!!![]()
Partager