Gracias Andres la final lo tengo realizado de esta manera,

Depues de todo ya controlo la posicion del recuadro para que no se salga de el, pero la parte de mover el mc en horizontal y vertical como si fuese una pieza caballo de ajedrez no lo he conseguido ¿no se como calcular la distancia para que se mueva primero en X y luego en Y o al reves?

La funcion updateAfterEvent(enterFrame); se pondria dentro de cada bucle if para que haga un movimiento mas suave? o con ponerla al final es suficiente, lo digo por que me pega muchos saltos el MC que sige al cursor (y aunque lo he probado dentro de cada if sige igual, va como a tronpicones)

// A cascarla, lo definimos manualmente
var TOP = 30;
var BOTTOM = 280;
var LEFT = 35;
var RIGHT = 435;

pieza.onMouseMove = function() {
//Posicion del raton
   Xpos = _root._xmouse;
   ypos = _root._ymouse;
Xposca = pieza._x;
   yposca = pieza._y;
Xvel = Xpos - Xposca;
   yvel = ypos - yposca;
//velocidad
   Xmove = Xvel/20;
   ymove = yvel/20;

   //MOVIMIENTO
   //horizontal
   if (pieza._x < RIGHT && pieza._x > LEFT) {
pieza._x = Xposca + Xmove; //updateAfterEvent(enterFrame);
   }
   else if (pieza._y > TOP || pieza._y < BOTTOM) {
       pieza._y = yposca + ymove;
   }
   /*
   if () {
       pieza._x = Xposca + Xmove;
       updateAfterEvent(enterFrame);
   }
   /*else if (pieza._y < BOTTOM) {
       pieza._y = yposca + ymove;
   }
   */
   //vertical
   /*
   if (pieza._y > TOP) {
       pieza._y = yposca + ymove;
   }

   if (pieza._y < BOTTOM) {
       pieza._y = yposca + ymove;
   }
   */
//COLISION
   if (pieza._x > RIGHT) {
       pieza._x = RIGHT;
   }
   else if (pieza._x < LEFT) {
       pieza._x = LEFT;
   }
if (pieza._y > BOTTOM) {
       pieza._y = BOTTOM;
   }
   else if (pieza._y < TOP) {
       pieza._y = TOP;
}
   //Actualizar
   updateAfterEvent(enterFrame);
};



Saludos. Gracias por las sugerencias.


----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------

Reply via email to