Example #1
0
        protected override void Init(World world)
        {
            Body body1 = new StaticBody("Ground1", new Box(500.0f, 20.0f));
            body1.SetPosition(250.0f, 400);
            world.Add(body1);

            Body body2 = new Body("Teeter", new Box(250.0f, 10.0f), 5);
            body2.Friction = 0.5f;
            body2.SetPosition(250.0f, 370);
            world.Add(body2);

            Body body3 = new Body("light1", new Box(10.0f, 10.0f), 10);
            body3.SetPosition(135, 360);
            world.Add(body3);
            Body body4 = new Body("light2", new Box(10.0f, 10.0f), 10);
            body4.SetPosition(150, 360);
            world.Add(body4);

            Body body5 = new Body("weight", new Box(25.0f, 25.0f), 30);
            body5.SetPosition(350, 50);
            world.Add(body5);

            BasicJoint j = new BasicJoint(body1, body2, new Vector2f(250, 370));
            world.Add(j);
        }
 /// <summary> Create a new joint
 /// 
 /// </summary>
 /// <param name="body1">The first body jointed
 /// </param>
 /// <param name="body2">The second body jointed
 /// </param>
 /// <param name="anchor">The anchor point for the underlying basic joint
 /// </param>
 /// <param name="Distance">The Distance the bodies must be apart before force is applied
 /// </param>
 public ConstrainingJoint(Body body1, Body body2, Vector2f anchor, float distance)
 {
     this.distance = distance;
     this.body1 = body1;
     this.body2 = body2;
     realJoint = new BasicJoint(body1, body2, anchor);
 }
Example #3
0
        protected override void Init(World world)
        {
            Body body1 = new StaticBody("Ground1", new Box(400.0f, 20.0f));
            body1.SetPosition(250.0f, 400);
            world.Add(body1);
            Body body3 = new StaticBody("Ground2", new Box(200.0f, 20.0f));
            body3.SetPosition(250.0f, 100);
            world.Add(body3);

            Body swing = new Body("Swing", new Circle(10), 50);
            swing.SetPosition(160.0f, 300);
            world.Add(swing);
            Body swing2 = new Body("Swing", new Circle(10), 50);
            swing2.SetPosition(340.0f, 300);
            world.Add(swing2);
            Body swing3 = new Body("Swing", new Box(250.0f, 10.0f), 50);
            swing3.SetPosition(250.0f, 285);
            swing3.Friction = 4.0f;
            world.Add(swing3);

            Body box = new Body("Resting", new Box(30, 30), 1);
            box.SetPosition(250.0f, 200);
            box.Rotation = 0.15f;
            world.Add(box);

            BasicJoint j1 = new BasicJoint(body3, swing, new Vector2f(160, 110));
            world.Add(j1);
            BasicJoint j2 = new BasicJoint(body3, swing2, new Vector2f(340, 110));
            world.Add(j2);
            BasicJoint j3 = new BasicJoint(swing, swing3, new Vector2f(160, 300));
            world.Add(j3);
            BasicJoint j4 = new BasicJoint(swing2, swing3, new Vector2f(340, 300));
            world.Add(j4);

            swing.AdjustVelocity(new Vector2f(-100, 0));
        }
Example #4
0
        /// <summary> Reconfigure this joint
        /// 
        /// </summary>
        /// <param name="b1">The first body attached to this joint
        /// </param>
        /// <param name="b2">The second body attached to this joint
        /// </param>
        public virtual void Reconfigure(Body b1, Body b2)
        {
            body1 = b1;
            body2 = b2;

            joint1 = new BasicJoint(b1, b2, new Vector2f(b1.GetPosition()));
            joint2 = new BasicJoint(b2, b1, new Vector2f(b2.GetPosition()));
        }
Example #5
0
        protected override void Init(World world)
        {
            Body body;
            BasicJoint j;

            Body ground1 = new StaticBody("Ground1", new Box(500.0f, 20.0f));
            ground1.SetPosition(250.0f, 400);
            world.Add(ground1);

            body = new StaticBody("Ground2", new Box(250.0f, 20.0f));
            body.SetPosition(225.0f, 200);
            body.Friction = 3.0f;
            world.Add(body);

            // pendulum
            body = new StaticBody("Pen1", new Box(20.0f, 20.0f));
            body.SetPosition(70.0f, 100);
            world.Add(body);
            ball = new Body("Ball", new Box(10.0f, 10.0f), 1000);
            ball.SetPosition(70.0f, 170);
            world.Add(ball);

            j = new BasicJoint(body, ball, new Vector2f(70, 110));
            world.Add(j);

            // dominos
            for (int i = 0; i < 8; i++)
            {
                body = new Body("Domino " + i, new Box(10.0f, 40.0f), 10 - i);
                body.SetPosition(120.0f + (i * 30), 170);
                world.Add(body);
            }

            // ramp
            body = new StaticBody("Ground2", new Box(200.0f, 10.0f));
            body.SetPosition(345.0f, 270);
            body.Rotation = -0.6f;
            body.Friction = 0;
            world.Add(body);

            // teeter
            body = new Body("Teete", new Box(250.0f, 10.0f), 10);
            body.SetPosition(250.0f, 360);
            //body.setFriction(3.0f);
            world.Add(body);
            j = new BasicJoint(body, ground1, new Vector2f(250, 360));
            world.Add(j);

            // turner
            body = new Body("Turner", new Box(40.0f, 40.0f), 0.1f);
            body.SetPosition(390.0f, 330);
            body.Friction = 0f;
            world.Add(body);
            j = new BasicJoint(ground1, body, new Vector2f(390, 335));
            world.Add(j);
            Body top = new Body("Top", new Box(40.0f, 5.0f), 0.01f);
            top.SetPosition(390.0f, 307.5f);
            top.Friction = 0f;
            world.Add(top);
            j = new BasicJoint(top, body, new Vector2f(410, 310));
            world.Add(j);
        }