/// <summary> /// Mets à jour l'état de ce contrôleur, et lui permet d'envoyer des commandes au héros. /// </summary> /// <param name="time"></param> public override void Update(GameTime time) { if (GameServer.GetScene().Mode == SceneMode.Game) { GameWindow.IsVisible = true; GameWindow.Area = MapRdr.Viewport; // Passage du mode d'édition au mode normal. if (Input.IsTrigger(Microsoft.Xna.Framework.Input.Keys.LeftControl) && !Input.IsTrigger(Microsoft.Xna.Framework.Input.Keys.RightAlt)) { EditMode = !EditMode; } // Toogle de la capture de la souris. if (Input.IsTrigger(Microsoft.Xna.Framework.Input.Keys.RightControl)) { m_captureMouse = !m_captureMouse; } // Capture de la souris + scrolling. if (m_captureMouse) { UpdateMouseScrolling(); } // Mise à jour du contrôleur de la map. MapEditControler.IsEnabled = EditMode; MapEditControler.Update(time); // Gui manager EnhancedGuiManager.Update(time); if (GameWindow.HasFocus()) { GameWindow.IsHiden = true; if (!IsInSpectateMode) { UpdateGameInput(); } } else { GameWindow.IsHiden = false; } var ms = Input.GetMouseState(); __oldScroll = ms.ScrollWheelValue; } else if (GameServer.GetScene().Mode == SceneMode.Pick) { GameWindow.IsVisible = false; m_pickPhaseControler.Update(time); } }
/// <summary> /// Mets à jour l'état de ce contrôleur, et lui permet d'envoyer des commandes au héros. /// </summary> /// <param name="time"></param> public override void Update(GameTime time) { if (m_client.Snapshot.SceneMode == Views.SceneMode.Game) { GameWindow.IsVisible = true; GameWindow.Area = MapRdr.Viewport; // Toogle de la capture de la souris. if (Input.IsTrigger(Microsoft.Xna.Framework.Input.Keys.RightControl)) { m_captureMouse = !m_captureMouse; } // Capture de la souris + scrolling. if (m_captureMouse) { UpdateMouseScrolling(); } // Gui manager EnhancedGuiManager.Update(time); if (GameWindow.HasFocus()) { GameWindow.IsHiden = true; UpdateGameInput(); } else { GameWindow.IsHiden = false; } var ms = Input.GetMouseState(); __oldScroll = ms.ScrollWheelValue; } else if (m_client.Snapshot.SceneMode == Views.SceneMode.Pick) { GameWindow.IsVisible = false; m_pickPhaseControler.Update(time); } }
/// <summary> /// Dessine les éléments graphiques du contrôleur à l'écran. /// </summary> public override void Draw(SpriteBatch batch, GameTime time) { RenderTarget2D mainRenderTarget = MapRdr.SceneRenderer.MainRenderTarget; if (GameServer.GetScene().Mode == SceneMode.Game) { // Dessine les GUI, particules etc... batch.GraphicsDevice.SetRenderTarget(mainRenderTarget); batch.Begin(SpriteSortMode.BackToFront, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.Default, RasterizerState.CullNone); EnhancedGuiManager.Draw(batch); DrawControlerGUI(batch, time); batch.End(); } else { // PICKS var ms = Input.GetMouseState(); batch.Begin(); batch.Draw(Ressources.Cursor, new Rectangle((int)ms.X, (int)ms.Y, 32, 32), null, Color.White, 0.0f, Vector2.Zero, SpriteEffects.None, ZLayer.Front); batch.End(); } }