Comunidad de diseño web y desarrollo en internet online

Efecto de rebote gravitacional en Actionscript 3

Citar            
MensajeEscrito el 07 Nov 2008 04:08 am
Hace poco empeze a usar y a estudiar as3
y hoy en un momento de descanso quize probar a pasar algun tutorial sencillo que estuviere hecho para as2 a as3
el tutorial que agarre fue este
Efecto de rebote gravitacional por ActionScript hecho por JOHNMARTIN
y bueno queria compartir lo que hize aunque no es una ciencia :P
lo primero es crear nuestra pelotita . La convertimos en movieClip y le asignamos una clase; ponganle Circulo.
despues la eliminamos de la escena y en el primer frame colocamos esto

Código ActionScript :

//instanciamos una variable con la clase Circulo..concretamente 'circ' será el nombre del circulo en el escenario
var circ:Circulo = new Circulo();
//agregamos nuestro circulo al escenario
addChild(circ);
//estas son las variables
var fuerza:Number = 1;
var velocidad:Number = 0;
//le ponemos cualquier x..ya que lo que nos interesa es modificar su y
circ.x = 250;
//creamos la funcion que hara el efecto de rebote
function gravedad(evt:Event){
//la velocidad se incrementa en uno..y ese valor se acumula al valor anterior de velocidad
      velocidad += fuerza;
//el y del circulo aumenta con la velocidad
      this.y += velocidad;
//aca ponemos que si y del circulo es mayor que 400(tamaño de mi escenario) el circulo no avanza mas y velocidad se multiplica en -1 es decir el efecto de rebote
      if(this.y>400){
      this.y = 400;
      velocidad *= -1;
      }
}
//este eventListener es un "escuchador" que evalua cuando se produce un evento sobre 'circ' ..... con la funcion "gravedad" para ser ejecutada
circ.addEventListener(Event.ENTER_FRAME, gravedad);


eso es todo :)
tal vez no sirva mucho a nivel practico pero tal vez para alguien que este empezando con as3 le puede servir para entender un poco como se manejan los listener, en este caso remplazando un onEnterFrame
besos :D

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 07 Nov 2008 03:23 pm
habria q agregarle un if para borrar el enterframe:

Código ActionScript :

var posicionFinal:Number;
if(circ.y == posicionFinal){
  //
 circ.removeEventListener(Event.ENTER_FRAME, gravedad); 
}

aunque ese efecto se logra facil con el un Tween y un Bounce

Por penHolder

Claber

4661 de clabLevel

39 tutoriales
2 articulos

Genero:Masculino   Premio_Secretos

| mdz |

msie7
Citar            
MensajeEscrito el 07 Nov 2008 03:39 pm
no entendi para que
:S
amenos que en esta linea:

Código ActionScript :

if(this.y>400){ 
      this.y = 400; 
      velocidad *= -1;
      }

le agregues esto

Código ActionScript :

if(this.y>400){ 
      this.y = 400; 
      velocidad *= -1;
     fuerza*=1.5;
      }

y despues eliminas el enterframe para que no se repita infinitamente?

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla

 

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