forked from: [QuickBox2D] Doll Dancing

by Bruce_Jawn forked from [QuickBox2D] Doll Dancing (diff: 155)
立てません><

@author paq89
♥0 | Line 61 | Modified 2016-05-25 22:52:23 | MIT License
play

ActionScript3 source code

/**
 * Copyright Bruce_Jawn ( http://wonderfl.net/user/Bruce_Jawn )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/KYQY
 */

// forked from Kay's [QuickBox2D] Doll Dancing

// forked from paq's [QuickBox2D] Doll

package 

{

    import Box2D.Common.Math.b2Vec2;

    import Box2D.Dynamics.Joints.b2RevoluteJoint;

    import com.actionsnippet.qbox.QuickBox2D;

    import com.actionsnippet.qbox.QuickObject;

    import flash.display.MovieClip;

    import flash.display.Sprite;

    import flash.events.Event;

    

    /**

     * 立てません><

     * @author paq89

     */

    [SWF(width = 465, height = 465, backgroundColor = 0x333333, frameRate = 60)]

    public class Main extends MovieClip 

    {

        //private static const DRAW_SCALE:Number = 30;

        

        public function Main():void 

        {

            if (stage) init();

            else addEventListener(Event.ADDED_TO_STAGE, init);

        }

        

        private function init(e:Event = null):void 

        {

            removeEventListener(Event.ADDED_TO_STAGE, init);

            

            var sim:QuickBox2D = new QuickBox2D(this);

            sim.setDefault({fillColor:0x288CC, fillAlpha:0.8, lineColor:0x995B5C9});

            sim.createStageWalls();

            

            //var anchor:QuickObject = sim.addCircle({x:232 / DRAW_SCALE, y:0/DRAW_SCALE, density:0, radius:1, fillAlpha:1, lineAlpha:0 });

            //addJoint( { a:head.body, b:anchor.body, length:250 / DRAW_SCALE, dampingRatio:0.06, lineAlpha:0 } );

            

            

            //addRagdoll(sim, 6);

            sim.setDefault( { type:"revolute", collideConnected:false, enableLimit:true, lineColor:0xFFFFFF } );

            //addRagdoll(sim, 30);

            addRagdoll(sim, 80);
            
            addRagdoll(sim, 40);

            sim.start();

            sim.mouseDrag();

        }

        



        private function addRagdoll(sim:QuickBox2D, DRAW_SCALE):Object

        {

            var ragdoll={};



            ragdoll.head = sim.addCircle( { x:232 / DRAW_SCALE, y:4 / DRAW_SCALE, radius:17 / DRAW_SCALE } );

            ragdoll.torsoA = sim.addBox( { x:232 / DRAW_SCALE, y:35 / DRAW_SCALE, width:53 / DRAW_SCALE, height:28 / DRAW_SCALE, restitution:0 } );

            ragdoll.torsoB = sim.addBox( { x:232 / DRAW_SCALE, y:55 / DRAW_SCALE, width:45 / DRAW_SCALE, height:28 / DRAW_SCALE, restitution:0 } );

            ragdoll.torsoC = sim.addBox( { x:232 / DRAW_SCALE, y:75 / DRAW_SCALE, width:40 / DRAW_SCALE, height:28 / DRAW_SCALE, restitution:0 } );

            ragdoll.pelvis = sim.addBox( { x:232 / DRAW_SCALE, y:95 / DRAW_SCALE, width:45 / DRAW_SCALE, height:25 / DRAW_SCALE, restitution:0 } );

            ragdoll.leftArmA = sim.addBox( { x:185 / DRAW_SCALE, y:28 / DRAW_SCALE, width:50 / DRAW_SCALE, height:15 / DRAW_SCALE, restitution:0 } );

            ragdoll.leftArmB = sim.addBox( { x:135 / DRAW_SCALE, y:28 / DRAW_SCALE, width:50 / DRAW_SCALE, height:15 / DRAW_SCALE, restitution:0 } );

            ragdoll.rightArmA = sim.addBox( { x:280 / DRAW_SCALE, y:28 / DRAW_SCALE, width:50 / DRAW_SCALE, height:15 / DRAW_SCALE, estitution:0  } );

            ragdoll.rightArmB = sim.addBox( { x:330 / DRAW_SCALE, y:28 / DRAW_SCALE, width:50 / DRAW_SCALE, height:15 / DRAW_SCALE, restitution:0 } );

            ragdoll.leftLegA = sim.addBox( { x:217 / DRAW_SCALE, y:132 / DRAW_SCALE, width:16 / DRAW_SCALE, height:55 / DRAW_SCALE, restitution:0 } );

            ragdoll.rightLegA = sim.addBox( { x:246 / DRAW_SCALE, y:132 / DRAW_SCALE, width:16 / DRAW_SCALE, height:55 / DRAW_SCALE, restitution:0 } );

            ragdoll.leftLegB = sim.addBox( { x:217 / DRAW_SCALE, y:185 / DRAW_SCALE, width:16 / DRAW_SCALE, height:55 / DRAW_SCALE, restitution:0 } );

            ragdoll.rightLegB = sim.addBox( { x:246 / DRAW_SCALE, y:185 / DRAW_SCALE, width:16 / DRAW_SCALE, height:55 / DRAW_SCALE, restitution:0 } );



     

            ragdoll.headtorsoAjnt = sim.addJoint( { a:ragdoll.head.body, b:ragdoll.torsoA.body, lowerAngle:-0.2, upperAngle:0.2 } );

            ragdoll.torsoAtorsoBjnt = sim.addJoint( { a:ragdoll.torsoA.body, b:ragdoll.torsoB.body, lowerAngle:-0.2, upperAngle:0.2 } );

            ragdoll.torsoBtorsoCjnt = sim.addJoint( { a:ragdoll.torsoB.body, b:ragdoll.torsoC.body, lowerAngle:-0.2, upperAngle:0.2 } );

            ragdoll.torsoCpelvisjnt = sim.addJoint( { a:ragdoll.torsoC.body, b:ragdoll.pelvis.body, lowerAngle:-0.2, upperAngle:0.2 } );

            ragdoll.torsoAleftArmAjnt = sim.addJoint( { a:ragdoll.torsoA.body, b:ragdoll.leftArmA.body, x1:212 / DRAW_SCALE, y1:28 / DRAW_SCALE, lowerAngle:-2, upperAngle:1} );

            ragdoll.leftArmAleftArmBjnt = sim.addJoint( { a:ragdoll.leftArmA.body, b:ragdoll.leftArmB.body, x1:155 / DRAW_SCALE, y1:28 / DRAW_SCALE, lowerAngle: -2, upperAngle:1 } );

            ragdoll.torsoArightArmAjnt = sim.addJoint( { a:ragdoll.torsoA.body, b:ragdoll.rightArmA.body, x1:257 / DRAW_SCALE, y1:28 / DRAW_SCALE, lowerAngle:-1, upperAngle:2} );

            ragdoll.rightArmArightArmBjnt = sim.addJoint( { a:ragdoll.rightArmA.body, b:ragdoll.rightArmB.body, x1:314 / DRAW_SCALE, y1:28 / DRAW_SCALE, lowerAngle: -1, upperAngle:2 } );

            ragdoll.pelvisleftLegAjnt = sim.addJoint( { a:ragdoll.pelvis.body, b:ragdoll.leftLegA.body, x1:217 / DRAW_SCALE, y1:110 / DRAW_SCALE, lowerAngle: -1, upperAngle:1 } );

            ragdoll.pelvisrightLegAjnt = sim.addJoint( { a:ragdoll.pelvis.body, b:ragdoll.rightLegA.body, x1:246 / DRAW_SCALE, y1:110 / DRAW_SCALE, lowerAngle: -1, upperAngle:1 } );

            ragdoll.leftLegAleftLegBjnt = sim.addJoint( { a:ragdoll.leftLegA.body, b:ragdoll.leftLegB.body, x1:217 / DRAW_SCALE, y1:163 / DRAW_SCALE, lowerAngle: -1, upperAngle:1 } );

            ragdoll.rightLegArightLegBjnt = sim.addJoint( { a:ragdoll.rightLegA.body, b:ragdoll.rightLegB.body, x1:246 / DRAW_SCALE, y1:163 / DRAW_SCALE, lowerAngle: -1, upperAngle:1 } );



            return ragdoll;

        }

    }

    

}