Se me ocurre que uses la clase tween para los movimientos , podras
facilmente restringirlos a _x e _y, e incluso podrás efectuar con ella
distintos tipos de movimientos ( efectos de rebote , desplazamiento con
aceleracion progresiva etc ... )...
Con esto además te olvidas del engorroso enterFrame y los movimientos
siempre serán suaves.
Seria calcular los desplazamientos necesarios en cada eje, y aplicarlos en
el orden que desees , x ejemplo 1º el _x y luego el _y, y el efecto será
como una pieza caballo de ajedrez como comentas .


Un saludo !

 

Fede Rivas .


-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre
de Aitor Fernandez
Enviado el: viernes, 03 de junio de 2005 9:22
Para: asnativos@5dms.com
Asunto: Re: [ASNativos] controlar coordenadas posicion

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
----------------------------------



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

Responder a