Comunidad de diseño web y desarrollo en internet online

Mcs que se dirigen hacia mcs

Citar            
MensajeEscrito el 22 Jul 2008 10:56 am
Pues aquí yo incluyo dos dudillas, ya que son de un nivel considerablemente bajo:

-La primera: ¿Como puedo hacer para que un mc se dirija hacia otro (que tiene la capacidad de moverse), con una cierta velocidad? (Estoy seguro de que lo hice en algún punto en mi vida... pro no logro encontrar ni el código ni nada)

-La segunda: Yo tengo un Mc que según presiono las flechas de dirección se va moviendo... Pero que además al pulsar la tecla SPACE aparece debajo otro mc. Se que había una forma que era situando el vector director variante como una variable (que lo tengo hecho ya), y luego decirle al segundo mc, goto (vectorvariante) o algo así... pero estoy buscando el código y no logro recordar o encontrar como era... ME SIRVE CUALQUIER FORMA PARA CONSEGUIRLO

:oops: ¿Alguien me echa un cable? :oops:

(Gracias de antemano)

Por ¡dol0

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Jul 2008 12:33 pm
Si deseas una función de un punto a otro es esta:

punto1: (x1, y1)
punto2: (x2, y2)

Código :

y = y1 + ((y2 - y1) / (x2 - x1))·(x - x1)

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Jul 2008 08:15 am
Vale... y eso sería moviendo de un punto a otro punto. El problema (según lo entinedo), es que ambos, tanto el punto1 como el punto2, son estáticos. Ahora imaginemos que el punto2 no tiene siempre la misma x y la misma y... que se va desplazando... ¿cómo sería el código?

Por ¡dol0

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Jul 2008 08:33 am
Recuerda que puedes tomar las propiedades de _x e _y de un Mc este entonces este sería el punto 2.

Si quisieras hacer un movimiento con easing la función es más sencilla pues lo que tienes que hacer es ir dividiendo la distancia en x e y:

Código :

var easing:Number = .25;
this.myMC.onMouseDown = function():Void{
   
   var xFin:Number = this._parent._xmouse;
   var yFin:Number = this._parent._ymouse;
   
   this.onEnterFrame = function():Void{
      
      var difX:Number = (xFin - this._x)*easing;
      var difY:Number = (yFin - this._y)*easing;
      
      this._x += difX;
      this._y += difY;
      
   }
   
}


Mientras el valor de easing sea más cercano a 1 el movimiento será más acelerado, mientras más cercano a 0 menos acelerado

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Jul 2008 11:55 am
Okey colega... :wink: Lo he probado y no me ha disgustado, y ya de paso lo he cambiado para dar el uso que quería yo (a partir de lo que has hecho tú). ^^

Lo que tú has conseguido es que con dar un click en la pantalla estableces el punto1 hacia el que el punto2 (myMC, un movieClip) se dirige con una velocidad (easing)... y lo que he conseguido es que ahora el punto2 cambie de donde está a punto1 (otro mc), el cual posee una cierta velocidad también, estableciendo que myMC persigue al otromc. Sería de la forma siguiente:

Dentro de myMC (que sería el perseguidor):

Código :

onClipEvent (load) {
_x = 0;
_y = 0;
velocidad = 0.015; //mientras más se acerque a "1" más velocidad tendrá... pero incluso
 // 0.25 es una velocidad considerablemente alta
}
onClipEvent (enterFrame) {
finX = _root.otroMC._x; //la _x del mc perseguido -> para en el eje _x cuando sea el mismo que
//el eje _x del mc perseguido (otroMC)
finY = _root.otroMC._y; //la _y del mc perseguido -> para en el eje _y cuando sea el mismo que
//el eje _y del mc perseguido (otroMC)
}
onClipEvent (enterFrame) {
_x += (finX-this._x)*velocidad;
_y += (finY-this._y)*velocidad;
}


Primero estableces las variables con "onClipEvent (load)" ( _x inicial, _y inicial y velocidad). Luego estableces las variables finX y finY, indicando que pare cuando llegué a la _x y la _y del otroMC. Entonces ya solo es poner la fórmula que pusistes para que se acerque a cierta velocidad SOLO QUE AÑIADIENDO UN "+" despues de _x e _y para que se acerque (si no pones nada desaparece y si pones un "-" se aleja en lugar de acercarse).

^^ Gracias por todo ^^

(Espero que también le sea de ayuda a alguien algún día)

Por ¡dol0

4 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.