
Etiquetas: RectangleParticle addParticle CircleParticle step paint APEngine
//Importo las clases necesariasimport org.cove.ape.*;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.display.Sprite;
//Variable de tipo grupo. Va a almacenar todas las partículas y constrains del escenario APEvar grupoColisiones:Group;//Inicializa la escenafunction Empezar(){
//Creo el motorCrearAPE();
//Añado los elementos APE al escenarioCrearEscenario();
//Añado un listener para que ejecute la función Run, que se encarga de realizar los cálculos // y mover todas las partículas incluidas en el grupoColisionesaddEventListener(Event.ENTER_FRAME, Run);
}//Crea el escenario APEfunction CrearAPE(){
APEngine.init(1/4);
var contenedor:MovieClip = new MovieClip()
APEngine.container = contenedor;addChild(contenedor);
APEngine.addForce(new VectorForce(false,0,2));
grupoColisiones = new Group();
APEngine.addGroup(grupoColisiones);
grupoColisiones.collideInternal = true;
}//Crea los elementos del escenariofunction CrearEscenario(){
//Añado un visor de FPSvar FPS:FrameRate = new FrameRate();
FPS.setPosition(20,0);
addChild(FPS);
//Creo un suelo y dos paredesCrearRectangulo(200,395,400,10,0,true,1,0.1,0);
CrearRectangulo(0,200,10,400,Math.PI,true,1,0.1,0);
CrearRectangulo(400,200,10,400,Math.PI,true,1,0.1,0);
//Creo cuatro rampasCrearRectangulo(50,100,200,10,Math.PI/4,true,1,0.1,0);
CrearRectangulo(200,200,150,10,3*Math.PI/4,true,1,0.1,0);
CrearRectangulo(300,200,150,10,3*Math.PI/4,true,1,0.1,0);
CrearRectangulo(100,300,150,10,Math.PI/4,true,1,0.1,0);
//Creo un Timer para que cree circulos de tamaño aleatorio (se va a ejecutar 100 veces, una cada 500 ms)var tiempo = new Timer(500,100);
tiempo.addEventListener("timer",Circulo);
function Circulo(event:TimerEvent):void {
CrearCirculo(Math.random() * 400,0 ,Math.random() * 20 + 5 ,false,1,0.5,0);
}tiempo.start();
}/*//Crea un rectánguloEsta función crea un rectángulo. Los rectángulos tienen los siguientes atributos: -x,y,ancho,alto y rotación(en radianes) -fixed:Boolean, indica si la partícula es fija o no. En este ejemplo las rampas y paredes tienen fixed = true y lo círculos fixed = false; -mass: masa -elasticity:elasticidad. El valor predeterminado es 0.3, un valor mayor significa más elasticidad. -friction: fricción*/function CrearRectangulo(X,Y,ancho,alto,rot,est,masa,ela,fri){
var rp:RectangleParticle = new RectangleParticle(X,Y,ancho,alto,rot,est,masa,ela,fri);
grupoColisiones.addParticle(rp);
}/*//Crea un círculoEsta función crea un círculo. Los círculos tienen los siguientes atributos: -x,y,radio -fixed:Boolean, indica si la partícula es fija o no. En este ejemplo las rampas y paredes tienen fixed = true y lo círculos fixed = false; -mass: masa -elasticity:elasticidad. El valor predeterminado es 0.3, un valor mayor significa más elasticidad. -friction: fricción*/function CrearCirculo(X,Y,radio,est,masa,ela,fri){
var circ = new CircleParticle(X,Y,radio,est,masa,ela,fri);
grupoColisiones.addParticle(circ);
}//Ejecuta el APEngine en cada enterFramefunction Run(e:Event):void {
APEngine.step();
APEngine.paint();
}//EmpezamosEmpezar();
No hay comentarios