import org.cove.flade.*; var psystem:ParticleSystem = new ParticleSystem(); psystem.setDamping(1.0); psystem.setGravity(0.0, 0.5); psystem.setKfr(0.1); // surface friction for particles psystem.setFriction(0.7); // surfaces var sA:LineSurface = new LineSurface(new Vector(0,0), new Vector(11,303)); sA.setIsOrientH(false); psystem.addSurface(sA); var s0:LineSurface = new LineSurface(new Vector(8,300), new Vector(100,300)); psystem.addSurface(s0); var s1:LineSurface = new LineSurface(new Vector(100,300), new Vector(300,200)); psystem.addSurface(s1); var s2:LineSurface = new LineSurface(new Vector(300,200), new Vector(600,350)); psystem.addSurface(s2); var s3:LineSurface = new LineSurface(new Vector(600,350), new Vector(799,300)); psystem.addSurface(s3); var sB:LineSurface = new LineSurface(new Vector(799,300), new Vector(799,0)); sB.setIsOrientH(false); psystem.addSurface(sB); var circ:CircleSurface = new CircleSurface(300, 140, 50); psystem.addSurface(circ) psystem.paintSurfaces(); // rectangles var gx:Number = 100; var gy:Number = 100; var body:Rectangle = psystem.addRectangle(new Vector(gx, gy + 30), 50, 60); var head:Rectangle = psystem.addRectangle(new Vector(gx, gy), 10, 15); // connections between rectangles var p1:Particle = psystem.addParticle(gx, gy); var p2:Particle = psystem.addParticle(gx, gy + 10); var p3:Particle = psystem.addParticle(gx, gy + 20); var springA:SpringConstraint = psystem.addSpringConstraint(body.p0, p1); var springB:SpringConstraint = psystem.addSpringConstraint(p1, p2); var springC:SpringConstraint = psystem.addSpringConstraint(p2, p3); var springD:SpringConstraint = psystem.addSpringConstraint(p3, head.p0); springA.setRestLength(15); springB.setRestLength(15); springC.setRestLength(15); springD.setRestLength(15); this.onEnterFrame = function() { var yspeed:Number = 3; var xspeed:Number = 1.5; if (Key.isDown(Key.UP)) { head.p1.prev.y += yspeed; head.p2.prev.y += yspeed; } else if (Key.isDown(Key.DOWN)) { head.p1.prev.y -= yspeed; head.p2.prev.y -= yspeed; } if (Key.isDown(Key.LEFT)) { head.p1.prev.x += xspeed; head.p2.prev.x += xspeed; } else if (Key.isDown(Key.RIGHT)) { head.p1.prev.x -= xspeed; head.p2.prev.x -= xspeed; } psystem.timeStep(); psystem.paintParticles(); psystem.paintConstraints(); }