Rotation

cs_BULL87 Messages postés 11 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 21 mars 2006 - 17 déc. 2005 à 17:33
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 - 18 déc. 2005 à 01:05
bon je voudrait savoir comment faire pour que le clip tourelle d'un robot (X21)ennemie pointe constament sur le robot initial ou que celui-ci se place.
en gros quelle tourne pour le visée en fonction de sa position.

4 réponses

cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
17 déc. 2005 à 18:30
Crées une fonction que tu appelles sur un "onEnterFrame" ou un
"setInterval" (des trucs qui s'exécutent en boucle histoire de
réactualiser la position)



Un peu de trigo pour la fonction:



function tournerTourelle(){

var xT:Number=tourelle._x;

var yT:Number=tourelle._y;

var xE:Number=ennemi._x;

var yE:Number=ennemi._y;



tourelle._rotation=Math.atan((yE-yT)/(xE-xT)) * 180 / Math.PI;

}



this.onEnterFrame=function(){

tournerTourelle();

}



this.ennemi.onPress=function(){

this.startDrag(false);

}

this.ennemi.onRelease=function(){

this.stopDrag();

}



Crée un clip "tourelle" avec le canon horizontal pointant vers la droite

Crée un clip "ennemi" peu importe

Si la tourelle est tout à gauche sur l'anim elle pointera toujours vers
l'ennemi, tu peux déplacer l'ennemi pour t'en rendre compte.

Faudra juste changer la formule si ta tourelle est ailleurs ou faire un test genre ( if(xE<xT)...else...)



T'as déjà le principe et un exemple...à toi de faire le reste maintenant!



@+! Samy
0
cs_BULL87 Messages postés 11 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 21 mars 2006
17 déc. 2005 à 22:55
sauf que la tourelle est pas a un endroit stable elle bouge en continue c un autre robot
0
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
18 déc. 2005 à 00:31
et alors? T'as toute la structure du code! Y'a qu'à modifier la
fonction calculant la rotation selon la position de l'ennemi par
rapport à la tourelle!
0
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
18 déc. 2005 à 01:05
Y'avait vraiment pas grand chose à faire...un p'tit remémorage de la fonction arctangente et on comprend ce qui reste à faire!



Je te mets le code (testé) pour t'éviter trop de réflexion:



function tournerTourelle(){

var xT:Number=tourelle._x;

var yT:Number=tourelle._y;

var xE:Number=ennemi._x;

var yE:Number=ennemi._y;



if(xE>xT){

tourelle._rotation=Math.atan((yE-yT)/(xE-xT)) * 180 / Math.PI;

}else{

tourelle._rotation=180+Math.atan((yE-yT)/(xE-xT)) * 180 / Math.PI;

}

}



this.onEnterFrame=function(){

tournerTourelle();

}



this.ennemi.onPress=function(){

this.startDrag(false);

}

this.ennemi.onRelease=function(){

this.stopDrag();

}



this.tourelle.onPress=function(){

this.startDrag(false);

}

this.tourelle.onRelease=function(){

this.stopDrag();

}



@+! Samy
0
Rejoignez-nous