/// <summary> /// This is called when the game should draw itself. /// </summary> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.DarkSlateGray); GraphicsDevice.BlendState = BlendState.AlphaBlend; GraphicsDevice.DepthStencilState = DepthStencilState.None; BoundingFrustum frustum = new BoundingFrustum( Matrix.CreateLookAt(new Vector3(0, 15, 15), Vector3.Zero, Vector3.UnitZ) * Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, 1, 1, 10)); primitiveBatch.Begin(PrimitiveSortMode.Deferred, camera.View, camera.Projection); { primitiveBatch.DrawSphere(new BoundingSphere(Vector3.UnitX * 4, 1), 24, null, Color.White); primitiveBatch.DrawGrid(1, 128, 128, null, Color.White * 0.25f); primitiveBatch.DrawGrid(8, 16, 16, null, Color.Black); primitiveBatch.DrawLine(new Vector3(5, 5, 0), new Vector3(5, 5, 5), Color.Blue); primitiveBatch.DrawConstrainedBillboard(null, new Vector3(5, -5, 0), new Vector3(5, -5, 5), 0.05f, null, null, Color.Yellow); primitiveBatch.DrawArrow(Vector3.Zero, Vector3.UnitZ * 2, null, Color.White); primitiveBatch.DrawBox(new BoundingBox(-Vector3.One, Vector3.One), null, Color.White); primitiveBatch.DrawSolidBox(new BoundingBox(-Vector3.One, Vector3.One), null, Color.Yellow * 0.2f); primitiveBatch.DrawCircle(Vector3.UnitX * 2, 1, 24, null, Color.Yellow); primitiveBatch.DrawSolidSphere(new BoundingSphere(Vector3.UnitX * 4, 1), 24, null, Color.Red * 0.2f); primitiveBatch.DrawAxis(Matrix.CreateTranslation(-4, 0, 0)); primitiveBatch.DrawFrustum(frustum, null, Color.White); primitiveBatch.DrawSolidFrustum(frustum, null, Color.Pink * 0.5f); primitiveBatch.DrawCentrum(new Vector3(-5, -2, 0), 2, 1, 24, null, Color.WhiteSmoke * 0.5f); primitiveBatch.DrawSolidCentrum(new Vector3(-5, -2, 0), 2, 1, 24, null, Color.LawnGreen * 0.3f); primitiveBatch.DrawCylinder(new Vector3(-5, -6, 0), 2, 1, 24, null, Color.WhiteSmoke * 0.5f); primitiveBatch.DrawSolidCylinder(new Vector3(-5, -6, 0), 2, 1, 24, null, Color.Lavender * 0.3f); } primitiveBatch.End(); base.Draw(gameTime); }