//void DrawGroud(Ground ground) //{ // foreach (var mesh in ground.Model.Meshes) // { // foreach (BasicEffect effect in mesh.Effects) // { // effect.EnableDefaultLighting(); // effect.PreferPerPixelLighting = true; // effect.World = ground.WorldMatrix; // effect.View = player.Camera.View; // effect.Projection = player.Camera.Projection; // } // mesh.Draw(); // } //} public void Draw() { if (gameManager.IsGameRunning) { screenManager.Graphics.GraphicsDevice.Clear(Color.CornflowerBlue); screenManager.Graphics.GraphicsDevice.DepthStencilState = DepthStencilState.Default; screenManager.Graphics.GraphicsDevice.RasterizerState = new RasterizerState() { MultiSampleAntiAlias = true }; screenManager.Graphics.GraphicsDevice.SamplerStates[0] = new SamplerState() { Filter = TextureFilter.Anisotropic }; if (gameManager.Type == LabiryntType.Prim) { labirynth.VertexMap.Where(m => frustum.Contains(m.BoundingBox) != ContainmentType.Disjoint).ToList().ForEach(i => i.Draw(player.Camera.View, player.Camera.Projection, basicEffect)); } else if (gameManager.Type == LabiryntType.Recursive) { labirynth.ModelMap.ForEach(i => i.Draw(player.Camera.View, player.Camera.Projection)); } skyBox.Draw(player.Camera.View, player.Camera.Projection); finishPoint.Draw(player.Camera.View, player.Camera.Projection, basicEffect); ground.Draw(player.Camera.View, player.Camera.Projection, basicEffect); keys.ForEach(i => i.Draw(player.Camera.View, player.Camera.Projection, basicEffect)); minimap.Draw(new Vector2(player.position.X, player.position.Z)); //DrawGroud(ground); } }