protected override void Update(Microsoft.Xna.Framework.GameTime gameTime)
        {
            MouseState ms       = Mouse.GetState();
            Vector2    position = camera.ConvertScreenToWorld(new Vector2(ms.X, ms.Y), true, false);

            if (ms.LeftButton == ButtonState.Pressed && _fixedMouseJoint == null)
            {
                Fixture savedFixture = world.World.TestPoint(position);
                if (savedFixture != null)
                {
                    Body body = savedFixture.Body;
                    _fixedMouseJoint          = new FixedMouseJoint(body, position);
                    _fixedMouseJoint.MaxForce = 1000.0f * body.Mass;
                    world.World.AddJoint(_fixedMouseJoint);
                    body.Awake = true;
                }
            }

            if (ms.LeftButton == ButtonState.Released && _fixedMouseJoint != null)
            {
                world.World.RemoveJoint(_fixedMouseJoint);
                _fixedMouseJoint = null;
            }

            if (_fixedMouseJoint != null)
            {
                _fixedMouseJoint.WorldAnchorB = position;
            }
        }
        protected override void Update(Microsoft.Xna.Framework.GameTime gameTime)
        {
            // Process touch events
            TouchCollection touchCollection = TouchPanel.GetState();

            if (touchCollection.Count > 0)
            {
                TouchLocation tl = touchCollection[0];

                Vector2 position = camera.ConvertScreenToWorld(new Vector2(tl.Position.X,
                                                                           tl.Position.Y), true, false);

                if (tl.State == TouchLocationState.Pressed && _fixedMouseJoint == null)
                {
                    Fixture savedFixture = world.World.TestPoint(position);
                    if (savedFixture != null)
                    {
                        Body body = savedFixture.Body;
                        _fixedMouseJoint          = new FixedMouseJoint(body, position);
                        _fixedMouseJoint.MaxForce = 1000.0f * body.Mass;
                        world.World.AddJoint(_fixedMouseJoint);
                        body.Awake = true;
                    }
                }

                if (tl.State == TouchLocationState.Released && _fixedMouseJoint != null)
                {
                    world.World.RemoveJoint(_fixedMouseJoint);
                    _fixedMouseJoint = null;
                }

                if (_fixedMouseJoint != null)
                {
                    _fixedMouseJoint.WorldAnchorB = position;
                }
            }
        }