package {
    import org.cove.ape.*;
    import flash.events.Event;
    import flash.display.Sprite;  
    [SWF(width='500',height='400',backgroundColor='0xF0FFF0',frameRate='30')]
    public class ape extends Sprite {
        public function ape() {
            addEventListener(Event.ENTER_FRAME, run);
            APEngine.init(1/4);
            APEngine.container = this;
            APEngine.addMasslessForce(new Vector(0,2));
            var defaultGroup:Group = new Group();
            defaultGroup.collideInternal = true;            
            var cp:CircleParticle = new CircleParticle(250,10,5);
            defaultGroup.addParticle(cp);             
             var wp:WheelParticle = new WheelParticle(280,10,5,false,1,0.3,0.1,1);
            defaultGroup.addParticle(wp);
            var rp:RectangleParticle = new RectangleParticle(250,300,200,10,-0.52,true);
            defaultGroup.addParticle(rp);      
            var rp2:RectangleParticle = new RectangleParticle(150,200,200,10,0.52,true);
            defaultGroup.addParticle(rp2);        
            var rp3:RectangleParticle = new RectangleParticle(250,50,200,10,-0.52,true);
            defaultGroup.addParticle(rp3);
            var wa: WheelParticle = new WheelParticle(160,20,10,false,2);
            defaultGroup.addParticle(wa);        
            var wb: WheelParticle = new WheelParticle(200,20,10,false,2)
            defaultGroup.addParticle(wb);        
            var wc:SpringConstraint = new SpringConstraint(wa, wb, 0.5, true, 3);
            defaultGroup.addConstraint(wc);           
            APEngine.addGroup(defaultGroup);
        }
        private function run(evt:Event):void {
            APEngine.step();
            APEngine.paint();
        }
    }
}