Esta vez quería usar personajes creados por mi en 3d, crear movieclips con los movimientos y partir de ahí.
Pues bueno no es tan facil como yo creía. El problema me surge ya al principio , tengo un movieclip con 4 frames, en cada uno de ellos tengo 1 movieclip con las diferentes posiciones, lado , frente, espaldas, y esperando.
me está costando sacar la simple programación de que el movieclip reproduzca el frame pertinente, según donde se haya clicado , si es dentro de la altura del movieclip debería ir de lado , si es mayor de frente e inferior de espaldas, bueno pues no consigo encontrar la condición perfecta.
he intentado metiendo tracerts por todos los sitios y ha habido un momento que lo he conseguido , pero ahora vuelve a no ir bien, pero estoy seguro que es mucho más simple de lo que creo.
Adjunto las 2 funciones que he creado para esto .
Código ActionScript :
function detectPosicion() { if ((mcPerso1.x<clickSpot_x) && (clickSpot_y+180 < mcPerso1.y ) && (clickSpot_y+490 < mcPerso1.y )) { trace (cLados); trace (cArriba); trace("enladoclick"+ clickSpot_y ); trace ( "LAdoYperso"+mcPerso1.y ) ; mcPerso1.gotoAndStop(1); mcPerso1.scaleX=-1; mcPerso1.x+=300; escalado=true; }else{ trace("enladoclick"+ clickSpot_y ); trace ( "LAdoYperso"+mcPerso1.y ) mcPerso1.gotoAndStop(1); mcPerso1.scaleX=1; escalado=false; mcPerso1.x-=300; } if((clickSpot_y < cArriba) && (mcPerso1.y < 0)) { trace("enladoclick"+ clickSpot_y ); trace ( "LAdoYperso"+mcPerso1.y ) mcPerso1.gotoAndStop(2); } if ((clickSpot_y < cArriba) && (mcPerso1.y > 0)) { var prueba:Number= new Number; prueba =(mcPerso1.y+490); trace (prueba); trace(clickSpot_y); mcPerso1.gotoAndStop(4); } protected function capturadorPuntero(event:MouseEvent):void { clickSpot_x=mouseX; clickSpot_y=mouseY; detectPosicion(); //TweenLite.to(mcIzki, 1, {x:clickSpot_x, y:clickSpot_y}); if (escalado == true ) { if (ejeZ == false ) { TweenLite.to(mcPerso1, 4, {x:clickSpot_x+200, y:clickSpot_y-250, ease:Linear.easeNone, onComplete:posicionEspera}); }else { TweenLite.to(mcPerso1, 4, {x:clickSpot_x+200, y:clickSpot_y-250, ease:Linear.easeNone,scaleX:0.5,scaleY:0.5, onComplete:posicionEspera}); } }else{ if (ejeZ == false ) { TweenLite.to(mcPerso1, 4, {x:clickSpot_x-200, y:clickSpot_y-250, ease:Linear.easeNone, onComplete:posicionEspera}); } }
En esas 2 funciones, indico que frame debe estar en play , y luego hago el tween . Lo malo es que jamás consigo que el personaje sea fiel a donde hago el clic y tenga un movimiento mas o menos coherente. Y puestos a pedir ayuda, por si lo véis muy claro , el otro problema que estoy teniendo es a la hora de escalar el personaje cuando suba mas de la mitad de la pantalla, para darle profundiad, había pensado en moverlo sobre el eje Z así ya no tengo que escalarlo pero entonces el movimiento hacia los lados no se me reflejaba igual. Si tenéis algun aporte a esto tb sería de gran ayuda, igualmente sigo comiendome la cabeza.
como siempre muchas gracias.