Je viens juste de me mettre à l'as3, et je ne n'ai jamais été un tres bon dev en as2 :/
mon soucis: j'aimerai réaliser un déplacement de personage dans un decor 3d en utilisant les nouvelles propriétés de rotation des clips de flash10: le personage tourne selon l'emplacement de la souris par rapport a lui, et se déplace avec un temps de retard.
pour l'instant ca marche.( voir le swf)
ce que j'aimerai savoir, c'est quelles est la bonne technique pour que mon perso ne puisse pas aller dans certaines zones de la carte.
j'ai essayé avec hit test mais je n'y comprend rien !!
voici mon code, où mc_perso est le clips 3D qui contiens une vidéo d'un perso en mouvement :
Action Script
var MIN:Number=-180;
addEventListener(Event.ENTER_FRAME, folow);
function folow(e:Event):void {
var yrotation:Number=mc_perso.x-mouseX+110;
var zrotation:Number=mc_perso.y-mouseY;
if (zrotation>0) {
yrotation=mc_perso.x-mouseX+110;
yrotation=yrotation/3;
yrotation=yrotation-yrotation*2;
if (yrotation>0) {
yrotation=0;
}
if (yrotation<MIN) {
yrotation=MIN;
}
}
if (zrotation<0) {
yrotation=mc_perso.x-mouseX+330;
yrotation=yrotation/3;
if (yrotation<0) {
yrotation=0;
}
if (yrotation>180) {
yrotation=180;
}
}
trace("yrotation = "+yrotation);
//trace("zrotation = "+zrotation);
//trace("mc_perso.y = "+mc_perso.y);
this.mc_perso.rotationY=yrotation-(yrotation-mc_perso.rotationY)/1.08;
this.mc_perso.y = mouseY-(mouseY-mc_perso.y)/1.002;
this.mc_perso.x = mouseX-(mouseX-mc_perso.x)/1.004;
this.mc_perso.scaleX=mc_perso.y/400;
this.mc_perso.scaleY=mc_perso.y/400;
Mouse.hide();
this.curser.y = mouseY-(mouseY-curser.y)/1.2;
this.curser.x = mouseX-(mouseX-curser.x)/1.2;
}