Aide - Recherche - Membres - Calendrier
Version complète : perso dans movieclip 3D et colision
Centre de Formation Flash - Forums Adobe Flash > Rich media et intégration > Intégration 3D
thibault dtc
Bonjour,

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;
}
Logic
L'usage d'un moteur de physique gérant les collisions serait une solution flexible et puissante.

Au choix:

http://box2dflash.sourceforge.net/

http://www.cove.org/ape/

Tu créés ton monde dans le moteur de physique avec les objets de base (carrés, rectangles, polygones...), puis tu plaques tes objets graphiques sur les positions des objets physiques correspondants.

Ya du boulot, mais c'est très intéressant et enrichissant ! icon_wink.gif

Après tu vas peut-être me dire "oui mais ya pas plus simple et sans le moteur de physique ?!?". Je répondrai alors oui, il existe plus simple, mais ça suppose de savoir développer orienté MVC, de séparer les données du rendu, et là je crois que tu vas y perdre tes cheveux (et nous aussi si on t'aide dans cette voie).
thibault dtc
Merci Logic, mais c'est d'une solution un peu moins complexe dont j'ai besoin !!! je n'en suis pas a faire de la 3D avec des moteurs !!!
Logic
Alors déjà avant de faire de la 3D, faut que tu arrives à faire marcher ton truc en 2D. La 3D viendra ensuite se superposer par dessus.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.