Comunidad de diseño web y desarrollo en internet online

Movimiento de una ficha en un tablero de Juego [AS3]

Citar            
MensajeEscrito el 23 Oct 2012 04:55 am
Buenas noches comunidad

Necesito su ayuda para solucionar un inconveniente que no he logrado comprender, pese a que he buscado en distintos foros y tutoriales.

Tengo un Tablero de juego, estilo Monopoly y necesito mover una ficha de una casilla a otra.

    *La ficha es un MovieClip con su respectivo nombre de instancia.
    *Estoy usando la clase Tween para realizar el movimiento
    *En 2 arreglos guardo las coordenadas X e Y de cada una de las casillas del tablero

Código ActionScript :

var casillasX:Array = new Array();
var casillasY:Array = new Array();

Cuando me voy a mover un numero de casillas cualquiera, recorro los arreglos y creo un Tween en cada iteración.

Código ActionScript :

function avanzar():void{
   for(var i:int=1; i<=numDado; i++){
      var fichaAvanzaX:Tween = new Tween(ficha, "x", Regular.easeOut, ficha.x, casillasX[casillaActual+i], 1, true);
      var fichaAvanzaY:Tween = new Tween(ficha, "y", Regular.easeOut, ficha.y, casillasY[casillaActual+i],1 , true);   
   }
}

El problema
Al parecer el Tween está tomando la posición de la casilla actual y la casilla destino y realiza la interpolación con 2 esos valores, sin tener en cuenta los valores intermedios, pese a que en el código recorro el arreglo de casillas intermedias y tomo las coordenadas casilla por casilla.

El movimiento final resulta como el de la imagen (Linea roja)



La pregunta

¿Como logro que el movimiento se realice como en la linea verde, recorriendo casilla por casilla.?

Lo que ya intenté, pero que no funciona

-Crear un Delay en cada iteración, pero este se ejecuta en un hilo aparte y el Tween realiza el movimiento incorrecto.
-Dejar los objetos de la clase Tween, como variables globales y darle las coordenadas en cada iteracion.

Gracias de antemano por su colaboración y espero me puedan ayudar.

Por anderblackhawk

Claber

106 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Oct 2012 09:15 am
BuenAS:

Como has comentado, parece que el problema viene de que los tweens se ejecutan simultáneamnete y no de forma secuencial. Yo, la verdad, no utilizo Tween, sino TweenLite/TweenMax.

Que tiene también:

TimelineLite/TimelineMax

te permite crear una serie de tweens y ejecutarlos de forma secuencial. En el enlace anterior tienes código de ejemplo para hacerlo.

Si nunca has utilizado TweenLite/TweenMax (o alguna otra biblioteca swc), debes descargartela primero desde el botón de descarga que aparece en la parte superior derecha de la página (Botón Download AS3). Descargarás un archivo zip, descomprimelo y verás que lleva un archivo llamado:

greensock.swc

En Flash Prof pulsa en el panel Propiedades el botón Perfil: Editar... En el cuadro que aparece, en la pestaña Flash, pulsa sobre Script: Configuración... y entrarás al cuadro "Configuración avanzada de ActionScript. En la pestaña "Ruta de bibioteca externa" pulsa el icono de "Navegar hasta archivo swc"

Con esto has añadido la biblioteca a tu proyecto. Ahora podrás utilizar TweenLite/TweenMax.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome

 

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