QuickBox2Dを試してみた Joint
Jointを利用して棒人間でも作ろうと思ったけどなかなかうまくいかない。。。
package { import com.actionsnippet.qbox.QuickBox2D; import com.actionsnippet.qbox.QuickObject; import flash.display.MovieClip; public class QB_3 extends MovieClip { private var SCALE:int = 30; public function QB_3() { //計算結果を画面に描画 var sim:QuickBox2D = new QuickBox2D(this); //画面に合わせて壁を作る sim.createStageWalls(); var head:QuickObject = sim.addCircle( { x:stage.stageWidth/2/SCALE, y:stage.stageHeight/2/SCALE, radius:5/SCALE, lineThickness:3, fillAlpha:0} ); var body:QuickObject = sim.addBox( { x:stage.stageWidth/2/SCALE, y:(stage.stageHeight/2+10)/SCALE, width:1/SCALE, height:10/SCALE, fillColor:0} ); var leftHand:QuickObject = sim.addBox( { x:body.x-1/SCALE, y:body.y, width:1/SCALE, height:5/SCALE, fillColor:0} ); var rightHand:QuickObject = sim.addBox( { x:body.x+1/SCALE, y:body.y, width:1/SCALE, height:5/SCALE, fillColor:0} ); var leftLeg:QuickObject = sim.addBox( { x:body.x-1/SCALE, y:body.y, width:1/SCALE, height:5/SCALE, fillColor:0} ); var rightLeg:QuickObject = sim.addBox( { x:body.x+1/SCALE, y:body.y, width:1/SCALE, height:5/SCALE, fillColor:0} ); //bodyとheadを繋げる。この二つのオブジェクトの衝突判定を無効にする。 sim.addJoint({a:body.body, b:head.body, collideConnected:false, x1:stage.stageWidth/2/SCALE, y1:(stage.stageHeight/2+5)/SCALE}); sim.addJoint({a:body.body, b:leftHand.body, collideConnected:false, x1:body.x, y1:body.y-2/SCALE, y2:leftHand.y-2/SCALE, x2:leftHand.x}); sim.addJoint({a:body.body, b:rightHand.body, collideConnected:false, x1:body.x, y1:body.y-2/SCALE, y2:rightHand.y-2/SCALE, x2:rightHand.x}); sim.addJoint({a:body.body, b:leftLeg.body, collideConnected:false, x1:body.x, y1:body.y+1/SCALE, y2:leftLeg.y-2/SCALE, x2:leftLeg.x}); sim.addJoint({a:body.body, b:rightLeg.body, collideConnected:false, x1:body.x, y1:body.y+1/SCALE, y2:rightLeg.y-2/SCALE, x2:rightLeg.x}); //シュミレーション開始 sim.start(); // オブジェをドラッグ出来るようになる sim.mouseDrag(); } } }