Foros del Web » Creando para Internet » Flash y Actionscript »

Movimiento _x

Estas en el tema de Movimiento _x en el foro de Flash y Actionscript en Foros del Web. Hola a todos: Tengo dos MC que quiero que se muevan a la derecha o a la izquierda dependiendo de la posición del ratón en ...
  #1 (permalink)  
Antiguo 05/05/2004, 05:53
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 14 años, 5 meses
Puntos: 0
Movimiento _x

Hola a todos:
Tengo dos MC que quiero que se muevan a la derecha o a la izquierda dependiendo de la posición del ratón en el escenario.
En el onClipEvent(enterFrame) de uno de ellos hago que se mueva x movimientos a la derecha o a la izquierda dependiendo de esa posición del ratón:

onClipEvent(enterframe){
if (_root._xmouse > 225){
if (_root.movido_izq1 == false){
for (i=0;i<25;i++){
_x = _x + 0.25;
_root.Movm1._x = _root.Movm1._x + 0.25;
}
_root.movido_izq1 = true;
_root.movido_drc1 = false;
}
}
else{
if (_root.movido_drc1 == false){
for (i=0;i<25;i++){
_x = _x - 0.25;
_root.Movm1._x = _root.Movm1._x - 0.25;
}
_root.movido_drc1 = true;
_root.movido_izq1 = false;
}
}
}

Mi problema es que este movimiento tanto a la derecha como a la izquierda me los hace de un golpe y yo quiero que me lo haga suavemente. Que se mueva _x = _x - 0.25 o _x = _x + 0.25 pero de manera suave. ¿Cómo lo puedo conseguir?.
  #2 (permalink)  
Antiguo 05/05/2004, 08:05
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 15 años
Puntos: 1
this._x += (500 - this._x) / 9;//la famosa formula de friccion...!!!



Salu2
__________________
http://www.flotdesign.dk/
  #3 (permalink)  
Antiguo 05/05/2004, 08:37
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 14 años, 5 meses
Puntos: 0
¿Podrías adaptarlo a mi código tanto para que vaya hacia la derecha como para que vaya hacia la izquierda?. Yo lo estoy intentado y no lo consigo.
¿Cómo sería para moverlo hacia la izquierda?
this._x -= (500 - this._x) / 9; //¿cambiando el + por el menos?

Última edición por reycoy; 05/05/2004 a las 08:42
  #4 (permalink)  
Antiguo 05/05/2004, 09:21
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 14 años, 5 meses
Puntos: 0
Al final despues de mucho mirar he conseguido acercarme. Tengo un cuadrado en escena y le pongo este código, porque quiero que haga ese movimiento deslizante sólo unos determinados píxeles.
Resumiendo lo que quiero es que haya un cuadrado en el escenario y si el ratón está en la parte derecha de la escena que ese cuadrado MC se mueva suavemente unos pixeles que yo determine a la derecha y si el ratón está a la izquierda que el cuadrado se mueva los mismos pixeles pero hacia la izquierda. Eso si todo suavemente con deceleración.
onClipEvent(enterframe){
if (_root._xmouse > 225){
//CUADRADO VERDE
if (this._x <= 268){
this._x += (500 - this._x) / 9;
}
}
else{
//CUADRADO VERDE
if (this._x >= 228){
this._x -= (500 - this._x) / 9;
}
}

}
Lo que me falta ahora por solucionar es que me va a trompicones y no consigo hacer que el cuadrado se mueva suavemente por el espacio que yo quiero.
Podéis hacer la prueba de colocar un cuadrado como MC en el escenario y ponerle el código que he escrito. Si conseguíis que el cuadrado se mueva con suavidad me lo comentáis, ¿vale?.
Una ayudita por favor.
  #5 (permalink)  
Antiguo 05/05/2004, 16:50
 
Fecha de Ingreso: junio-2003
Mensajes: 318
Antigüedad: 14 años, 5 meses
Puntos: 0
Más cosas:
He conseguido que un cuadrado entre unos limites marcados se aleje del ratón con aceleración.
Me gustaría que alguien me ayudara con mi código pero para conseguir que se alejara del ratón con deceleración, es decir primero rápido y después lento.
onClipEvent(enterFrame) {
tope_drch = 110;
tope_izqu = 89;
if (this._x < tope_drch && this._x > tope_izqu){
posicion = this._x;
diffPosx = _root._xmouse - posicion;
movex = diffPosx/21;
this._x = this._x - movex;
if(this._x > tope_drch){this._x = 108;}
if(this._x < tope_izqu){this._x = 91;}
}
}

Bueno, pido disculpas por si estoy molestando a alguien con tanto código. Seguramente por ello no me conteste nadie. Gracias de todos modos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:47.