private void Initialize() { // create Camera _camera = new ArcBallCamera(MapData.GetWorldPosition(20, 20), 0, MathHelper.PiOver2 * 0.5f * 0.8f * 0.8f, 0, MathHelper.PiOver2, CameraDistance, 30, 100, Manager.GraphicsDevice); // zooming zooming = new Zooming("Middle", "VeryFar", 2f, "Far", 1.3f, "Middle", 1.0f, "Near", 0.7f, "VeryNear", 0.5f, "Detail", 0.2f); zooming.ZoomChanged += delegate(float zoom) { _camera.Distance = CameraDistance * zoom; }; _effect = Manager.Content.Load<Effect>("Content/Effects/Series4Effects"); Mouse.SetPosition(Manager.GraphicsDevice.Viewport.Width / 2, Manager.GraphicsDevice.Viewport.Height / 2); _skyDome = Manager.Content.Load<Model>("Content/Models/dome"); _skyDome.Meshes[0].MeshParts[0].Effect = _effect.Clone(); _cloudMap = Manager.Content.Load<Texture2D>("Content/Models/cloudMap"); _mapRenderer.Initialize(); _mapRenderer.LoadContent(); // init complete view defaultViewport = new Viewport(); defaultViewport.X = 0; defaultViewport.Y = 0; defaultViewport.Width = Manager.GraphicsDevice.Viewport.Width; defaultViewport.Height = Manager.GraphicsDevice.Viewport.Height; // init control view controlViewport = new Viewport(); controlViewport.X = 4; controlViewport.Y = 27; controlViewport.Width = Manager.GraphicsDevice.Viewport.Width - 8; controlViewport.Height = Manager.GraphicsDevice.Viewport.Height - 32; }
public void Draw(GameTime gameTime, ArcBallCamera camera) { if (_map != null) { hMesh.Draw(gameTime, camera.View, camera.Projection, camera.Position); _riverMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero); _cursorsMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero); _borderMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero); _farmMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero); _roadMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero); if( MainWindow.Config.ResourceIcons ) _resourceBillboards.Draw(camera.View, camera.Projection, camera.Position, camera.Up, camera.Right); //foreach (ForestEntity forest in _forests) // if (forest.Point.DistanceTo(Center) < 15) // forest.Draw(gameTime); if (FogOfWarEnabled) _hiddenMeshContainer.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero); foreach (AbstractPlayerData pl in MainWindow.Game.Players) pl.Draw(gameTime); //_manager.GraphicsDevice.RasterizerState = RasterizerState.CullCounterClockwise; } }