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.
