Forums Développement Multimédia

Aller au contenu

Visée sur cercle trigonométrique

CODE

2 réponses à ce sujet

#1 Broutous

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 101 messages

Posté 23 April 2012 - 12:24 PM

Bonjour tout le monde !

Je m’éprouve depuis quelques jours à la réalisation d'un petit Tower Defense, quand tout à coup, ô Surprise ! Des erreurs de calculs ! Plus précisément une totale incompréhension de la trigo.

Mon problème:
Je souhaite qu'une tour suive un ennemi lorsqu'il passe à sa portée.
Donc je me suis dit qu'il suffisait de:
• récupérer les coordonnées x et y de l'ennemi en question
• de vérifier que le cosinus de la rotation (en radians) de la tour était égal au x actuel de l'ennemi
• de dupliquer l'opération pour le sinus sur le y;

si les conditions ne sont pas remplies, je tween la rotation de ma tour.
Cela ne fonctionne pas, et je dois avouer que je regrette d'avoir passé mon adolescence à dessiner en cours de maths :)

J'ai trouvé beaucoup d'exemples sur l'opération inverse, à savoir donner à une balle - ou a tout autre objet qui se déplace - un nouvel angle, mais rien en ce qui me concerne...

J'espère que le problème est clair, et que quelqu'un pourra m'aider, je vous remercie déjà !
"Regardez-moi ça ! J'ai de la corne sur les doigts on dirait des pieds..."

#2 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 23 April 2012 - 13:22 PM

Salut Broutous :)

c'est une préoccupation assez fréquente, il s'agit de récupérer un angle depuis un triangle rectangle dont on a deux cotés

je considère la tour ds un clip plateau, la tour centrée ds ce clip (pour nous simplifier, par la suite il te suffira d'ajouter ou de retrancher les coordonnées de la tour si ça t'ennuie), Elle pivote pour suivre le pointeur (plus tard un ennemi chez toi)

Les position x et y du pointeur définissent les côté d'un triangle rectangle dont l'angle que tu cherches serait au centre du plateau

Regarde le crobard ici (j'avais supprimé le tuto, je ne l'ai exhumé que pour le shema, je préviens ensuite je le re-cache :mrgreen: )

la pointe de l'angle c'est le centre la tour, l'ennemi se balade autour, sa coordonnée X c'est le côté O sur le shema, sa coordonnée Y c'est le côté A.

je pense que le shema, les quelques lignes qui le commentent, ainsi que les sources jointes devraient te permettre de faire ce ce que tu veux :roll:


Le code ocazou (les sources sont en CS4)

//angleDegrés=angleRadians*180/Math.PI ;


var  _laTour=plateau.tour
function tourne(me:MouseEvent):void {
        var angleRadians=Math.atan2(plateau.mouseY,plateau.mouseX);
//      trace(angleRadians);
//      trace(angleRadians*180/Math.PI);
        _laTour.rotation=angleRadians*180/Math.PI;

}

stage.addEventListener(MouseEvent.MOUSE_MOVE,tourne)
 

++ :)

Fichier(s) joint(s)


Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#3 Broutous

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 101 messages

Posté 23 April 2012 - 13:33 PM

Aaaah, superbe !

Merci Nataly, je me suis borné sur le cercle, idiot que je suis. Merci pour ta source, la rapidité de ta réponse et tout ci et tout ça, comme d'habitude efficace ! :)

Je retourne m'y casser les doigts, j'vous posterai une ptite url à la fin :)
"Regardez-moi ça ! J'ai de la corne sur les doigts on dirait des pieds..."



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)