- 
import com.actionsnippet.qbox.*; 
- 
import Box2D.Common.Math.*; 
- 
  
- 
[SWF (backgroundColor=0x000000, width=700, height=600, frameRate=60)] 
- 
  
- 
var sim:QuickBox2D = new QuickBox2D(this,{debug:false, frim:true, gravityY:1}); 
- 
  
- 
sim.setDefault({fillColor:0x113366, fillAlpha:0.8, lineColor:0x3355AA}); 
- 
  
- 
sim.createStageWalls(); 
- 
  
- 
var circle:QuickObject = sim.addCircle({x:10, y:10, radius:3}); 
- 
var head:QuickObject = sim.addCircle({x:5, y:5, radius:0.5}); 
- 
var torsoA:QuickObject = sim.addBox({x:5, y:6, width:1.5, height:0.8}) 
- 
var torsoB:QuickObject = sim.addBox({x:5, y:6.5, width:1.25, height:0.8}) 
- 
var torsoC:QuickObject = sim.addBox({x:5, y:7, width:1.0, height:0.8}) 
- 
var pelvis:QuickObject = sim.addBox({x:5, y:7.5, width:1.0, height:0.8}) 
- 
var leftLegA:QuickObject = sim.addBox({x:4.75, y:8.5, width:0.4, height:1.75}); 
- 
var leftLegB:QuickObject = sim.addBox({x:4.75, y:9.75, width:0.4, height:1.5}); 
- 
var rightLegA:QuickObject = sim.addBox({x:5.29, y:8.5, width:0.4, height:1.75}); 
- 
var rightLegB:QuickObject = sim.addBox({x:5.29, y:9.75, width:0.4, height:1.5}); 
- 
var leftArmA:QuickObject = sim.addBox({x:3.6, y:5.8, width:1.3, height:0.35}); 
- 
var leftArmB:QuickObject = sim.addBox({x:2.5, y:5.8, width:1.25, height:0.35}); 
- 
var rightArmA:QuickObject = sim.addBox({x:6.4, y:5.8, width:1.3, height:0.35}); 
- 
var rightArmB:QuickObject = sim.addBox({x:7.5, y:5.8, width:1.25, height:0.35}); 
- 
  
- 
torsoA.body.SetLinearVelocity(new b2Vec2(0, 50)); 
- 
  
- 
var anchor:b2Vec2 = new b2Vec2(); 
- 
function connect(a:QuickObject, b:QuickObject, lower:Number, upper:Number, offX:Number=0, offY:Number = 0):QuickObject{ 
- 
     var min:Number = Math.min(a.y, b.y); 
- 
     var max:Number = Math.max(a.y, b.y); 
- 
     anchor.y = min + (max - min) * 0.5 + offY; 
- 
     min = Math.min(a.x, b.x); 
- 
     max = Math.max(a.x, b.x); 
- 
     anchor.x = min + (max - min) * 0.5 + offX; 
- 
    return sim.addJoint({a:a.body, b:b.body, x1:anchor.x, y1:anchor.y, lowerAngle:lower, upperAngle:upper}); 
- 
} 
- 
  
- 
sim.setDefault({type:"revolute", collideConnected:false, enableLimit:true, lineColor:0xFFFFFF}); 
- 
  
- 
connect(head, torsoA, -.2, .2); 
- 
connect(torsoA, torsoB,-.2, .2); 
- 
connect(torsoC, torsoB,-.2, .2); 
- 
connect(torsoC, pelvis,-.2, .2); 
- 
  
- 
connect(pelvis, leftLegA, -1, 1, 0, -0.5); 
- 
connect(leftLegA, leftLegB, -1, 1); 
- 
  
- 
connect(pelvis, rightLegA, -1, 1, 0, -0.5); 
- 
connect(rightLegA, rightLegB, -1, 1); 
- 
  
- 
connect(torsoA, leftArmA, -2, 1); 
- 
connect(leftArmA, leftArmB, -2, 1); 
- 
  
- 
connect(torsoA, rightArmA, -1, 2) 
- 
connect(rightArmA, rightArmB, -1, 2) 
- 
  
- 
sim.start(); 
- 
sim.mouseDrag();