jueves, 24 de noviembre de 2011

Movimiento circular y elíptico con AS3


Se puede utilizar las funciones seno y coseno en situaciones en las que se necesite un movimiento oscilante, pero de manera coordinada se puede utilizar las dos funciones juntas, como veremos en las siguientes líneas de código:
//movimiento circular
package{
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class MovCircular extends Sprite{
  private var bola:Ball;
  private var angulo:Number=0;
  private var centroX:Number=150;
  private var centroY:Number=150;
  private var radio:Number=80;
  private var vel:Number=.1;
  
  public function MovCircular(){
   init();
  }
  public function init():void{
   bola =new Ball(20, 0x545454);
   addChild(bola);
   addEventListener(Event.ENTER_FRAME, onEnterFrame);
  }
  public function onEnterFrame(event:Event):void{
   
   bola.x=centroX+Math.sin(angulo)*radio;
   bola.y=centroY+Math.cos(angulo)*radio;
   //angulo = angulo + vel;
   angulo+= vel;
  }
 }
}
La clase circulo hace uso de una instancia ball (bola), definimos la posición de nuestro triángulo en 150px respecto al escenario, el radio del circulo por donde ball se desplaza es de 80px. Además tenemos una variable más que es la velocidad de desplazamiento que es de 0.1 Dentro de nuestra función oyente hacemos uso de las dos funciones seno y coseno, también se hace el incremento del ángulo respecto a la velocidad el resultado es este:

 

El rango en ambos casos será la hipotenusa del triángulo, que es igual al radio del circulo, se usa el coseno para obtener la posición “x” y se usa el seno para obtener la posición “y”, esta es una relación muy usada, de hecho cuando se habla del coseno se está refiriendo a x, y la posición y se usa junto con el seno.

Movimiento Elíptico

Haciendo algunas sencillas modificaciones a nuestro código se puede lograr este tipo de movimiento, modificando los rangos de movimiento X y Y del mismo, como podemos ver en este código


//Movimiento eliptico
package{
 import flash.display.Sprite;
 import flash.events.Event
 
 public class MovEliptico extends Sprite{
  private var bola:Ball;
  private var angulo:Number=0;
  private var centroX:Number=150;
  private var centroY:Number=150;
  private var radioX:Number=80;
  private var radioY:Number=40;
  private var vel:Number=.05;
    
  public function MovEliptico(){
   init();
  }
  public function init():void{
   bola=new Ball();
   addChild(bola);
   addEventListener(Event.ENTER_FRAME,onEnterFrame);
  }
  public function onEnterFrame(event:Event):void{
   bola.x=centroX+Math.sin(angulo)*radioX;
   bola.y=centroY+Math.cos(angulo)*radioY;
   angulo+=vel;
  }
 }
}

En este código existe modificaciones respecto al radio, definiendo dos variables independientes, con distintos valores, también para que el efecto sea mas vistoso rebaje la velocidad de la bola a .05; el efecto seria este :

 

Related Posts:

  • Primera práctica con Flash Buider La primera práctica que se hace siempre al aprender un nuevo lenguaje es el típico “Hola Mundo” y lo que básicamente hare en esta práctica es eso. Lo primero que hago es abrir mi recién instalado Flash Buider 4.5 y lo… Read More
  • Analizando la anatomía de las Aplicaciones Flex Los proyectos en Flash Builder presentan una arquitectura de desarrollo y diseño de proyectos únicos que contiene archivos mxml y AS3. Analizando un  poco el contenido de nuestro primer ejemplo de proyecto Flash Buil… Read More
  • Iniciando mi entrenamiento en Flash Builder Como esta semana la paso revisando mi información y actualizando algunas cosas, lo único con lo que puedo distraerme es escribiendo….ya necesitaba hacer un poco más interesante mi blog. Esta semana estoy trabajando en … Read More
  • Construcción de un Juego de Pong en Flash con AS3 (parte 2) Este día continuo con la explicación de este pequeño juego hecho en flash con AS3 y lo que básicamente voy a mostrar es el control de choques o detección de colisiones, este proceso es sencillo y básico al desarrollar cua… Read More
  • ¿Qué es física? Además de ser una ciencia fundamental?...hablando de una manera muy amplia “es el estudio de la leyes naturales que rigen el comportamiento de las cosas”. Se ocupa del espacio, tiempo y materia; por consiguiente estu… Read More