Example #1
0
 private static void Main()
 {
     using (var game = new JitterDemo())
     {
         game.Run();
     }
 }
Example #2
0
        private void BuildCar()
        {
            JitterDemo demo  = this.Game as JitterDemo;
            World      world = demo.World;

            CompoundShape.TransformedShape lower = new CompoundShape.TransformedShape(
                new BoxShape(2.5f, 1f, 6.0f), JMatrix.Identity, JVector.Zero);

            CompoundShape.TransformedShape upper = new CompoundShape.TransformedShape(
                new BoxShape(2.0f, 0.5f, 3.0f), JMatrix.Identity, JVector.Up * 0.75f + JVector.Backward * 1.0f);

            CompoundShape.TransformedShape[] subShapes = { lower, upper };

            Shape chassis = new CompoundShape(subShapes);

            //chassis = new BoxShape(2.5f, 1f, 6.0f);

            carBody = new DefaultCar(world, chassis);

            // use the inertia of the lower box.

            // adjust some driving values
            carBody.SteerAngle       = 30; carBody.DriveTorque = 155;
            carBody.AccelerationRate = 10;
            carBody.SteerRate        = 2f;
            carBody.AdjustWheelValues();

            carBody.Tag = BodyTag.DontDrawMe;
            carBody.AllowDeactivation = false;

            // place the car two units above the ground.
            carBody.Position = new JVector(0, 5, 0);

            world.AddBody(carBody);
        }
Example #3
0
        private void DrawChassis()
        {
            JitterDemo demo = this.Game as JitterDemo;

            foreach (ModelMesh mesh in chassisModel.Meshes)
            {
                foreach (BasicEffect effect in mesh.Effects)
                {
                    Matrix matrix = Conversion.ToXNAMatrix(carBody.Orientation);
                    matrix.Translation = Conversion.ToXNAVector(carBody.Position) -
                                         Vector3.Transform(new Vector3(0, 1.0f, 0), matrix);

                    //effect.EnableDefaultLighting();
                    effect.World      = matrix;
                    effect.View       = demo.Camera.View;
                    effect.Projection = demo.Camera.Projection;
                }
                mesh.Draw();
            }
        }
Example #4
0
        private void DrawWheels()
        {
            JitterDemo demo = this.Game as JitterDemo;

            for (int i = 0; i < carBody.Wheels.Length; i++)
            {
                Wheel wheel = carBody.Wheels[i];

                Vector3 position = Conversion.ToXNAVector(wheel.GetWorldPosition());

                foreach (ModelMesh mesh in tireModel.Meshes)
                {
                    foreach (BasicEffect effect in mesh.Effects)
                    {
                        Matrix addOrienation;

                        if (i % 2 != 0)
                        {
                            addOrienation = Matrix.CreateRotationX(MathHelper.Pi);
                        }
                        else
                        {
                            addOrienation = Matrix.Identity;
                        }

                        effect.World =
                            addOrienation *
                            Matrix.CreateRotationZ(MathHelper.PiOver2) *
                            Matrix.CreateRotationX(MathHelper.ToRadians(-wheel.WheelRotation)) *
                            Matrix.CreateRotationY(MathHelper.ToRadians(wheel.SteerAngle)) *
                            Conversion.ToXNAMatrix(carBody.Orientation) *
                            Matrix.CreateTranslation(position);

                        //effect.EnableDefaultLighting();
                        effect.View       = demo.Camera.View;
                        effect.Projection = demo.Camera.Projection;
                    }
                    mesh.Draw();
                }
            }
        }
        public override void Draw(GameTime gameTime)
        {
            JitterDemo demo = this.Game as JitterDemo;

            GraphicsDevice.SamplerStates[0]  = SamplerState.AnisotropicWrap;
            GraphicsDevice.DepthStencilState = DepthStencilState.Default;

            effect.View       = demo.Camera.View;
            effect.Projection = demo.Camera.Projection;

            foreach (EffectPass pass in effect.CurrentTechnique.Passes)
            {
                pass.Apply();

                GraphicsDevice.DrawUserIndexedPrimitives
                <VertexPositionNormalTexture>(PrimitiveType.TriangleList,
                                              vertices, 0, cloth.VertexBodies.Count, indices, 0, cloth.Triangles.Count);
            }

            base.Draw(gameTime);
        }
        public PrismaticJointTest(JitterDemo demo)
            : base(demo)
        {


        }
Example #7
0
 public SoftBodyJenga(JitterDemo demo)
     : base(demo)
 {
 }
Example #8
0
 public BroadphaseStress(JitterDemo demo)
     : base(demo)
 {
 }
 public Cloth(JitterDemo demo)
     : base(demo)
 {
 }
Example #10
0
 public CylinderWall(JitterDemo demo)
     : base(demo)
 {
 }
 public PrismaticJointTest(JitterDemo demo)
     : base(demo)
 {
 }
Example #12
0
 public NewtonCradle(JitterDemo demo)
     : base(demo)
 {
 }
 public TriangleMesh(JitterDemo demo)
     : base(demo)
 {
 }
        public ConvexDecomposition(JitterDemo demo)
            : base(demo)
        {


        }
Example #15
0
 public TriangleMesh(JitterDemo demo)
     : base(demo)
 {
 }
Example #16
0
 public Tower(JitterDemo demo)
     : base(demo)
 {
 }
Example #17
0
 public Scene(JitterDemo demo)
 {
     Demo = demo;
 }
 public Domino(JitterDemo demo) : base(demo)
 {
 }
Example #19
0
 public EmptyScene(JitterDemo demo)
     : base(demo)
 {
 }
Example #20
0
 public Ragdoll(JitterDemo demo)
     : base(demo)
 {
 }
Example #21
0
 public Restitution(JitterDemo demo)
     : base(demo)
 {
 }
Example #22
0
 public Scene(JitterDemo demo)
 {
     this.Demo = demo;
 }
Example #23
0
 public Restitution(JitterDemo demo)
     : base(demo)
 {
 }
Example #24
0
 public Pyramid(JitterDemo demo)
     : base(demo)
 {
 }
Example #25
0
 public Ragdoll(JitterDemo demo)
     : base(demo)
 {
 }
Example #26
0
 public BroadphaseStress(JitterDemo demo)
     : base(demo)
 {
 }
Example #27
0
 public Scene(JitterDemo demo)
 {
     this.Demo = demo;
 }
Example #28
0
 public SoftBodyJenga(JitterDemo demo)
     : base(demo)
 {
 }
 public ConvexDecomposition(JitterDemo demo)
     : base(demo)
 {
 }
Example #30
0
 public Wall(JitterDemo demo)
     : base(demo)
 {
 }
Example #31
0
 public Tower(JitterDemo demo)
     : base(demo)
 {
 }
Example #32
0
 public Rope(JitterDemo demo)
     : base(demo)
 {
 }
Example #33
0
 public CylinderWall(JitterDemo demo)
     : base(demo)
 {
 }
Example #34
0
        public Domino(JitterDemo demo) : base(demo)
        {


        }
Example #35
0
 public Rope(JitterDemo demo)
     : base(demo)
 {
 }
Example #36
0
        public Cloth(JitterDemo demo)
            : base(demo)
        {


        }
Example #37
0
 public NewtonCradle(JitterDemo demo)
     : base(demo)
 {
 }
 public Wall(JitterDemo demo)
     : base(demo)
 {
 }
Example #39
0
 public Terrain(JitterDemo demo)
     : base(demo)
 {
 }
Example #40
0
 public CardHouse(JitterDemo demo) : base(demo) { }
Example #41
0
 public Pyramid(JitterDemo demo)
     : base(demo)
 {
 }
Example #42
0
 public CardHouse(JitterDemo demo) : base(demo)
 {
 }
Example #43
0
 public EmptyScene(JitterDemo demo)
     : base(demo)
 {
 }
Example #44
0
 public Jenga(JitterDemo demo)
     : base(demo)
 {
 }
Example #45
0
 public Terrain(JitterDemo demo)
     : base(demo)
 {
 }
Example #46
0
 public Jenga(JitterDemo demo)
     : base(demo)
 {
 }