/// <summary> /// Update of the active scene's logic. /// The collision engine and game input are also updated. /// </summary> /// <param name="gameTime">The gametime</param> public static void Update(GameTime gameTime) { GameInput.Update(); Log.Update(gameTime); deltaFPSTime += (float)gameTime.ElapsedGameTime.TotalSeconds; if (deltaFPSTime >= 1) { fps = fpsCount; fpsCount = 0; deltaFPSTime = 0; } else { fpsCount++; } if (activeScene != null) { activeScene.Update(gameTime); } }
private static void MouseCollisionEvents() { if (SceneManager.ActiveScene != null) { //List<GameObject> detectedObj = new List<GameObject>(); // using the physics body: Fixture detected = SceneManager.ActiveScene.World.TestPoint(ConvertUnits.ToSimUnits(MousePosition)); if (detected != null) { if (!detected.Body.GameObject.mouseOver) { detected.Body.GameObject.OnMouseEnter(); } detected.Body.GameObject.mouseOver = true; detected.Body.GameObject.OnMouseMove(); //detectedObj.Add(detected.Body.GameObject); bool mouseDown = false; /* left button down? */ if (GameInput.MouseState.LeftButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { detected.Body.GameObject.OnMouseDown(MouseEventButton.LeftButton); mouseDown = true; } /* right button down? */ if (GameInput.MouseState.RightButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { detected.Body.GameObject.OnMouseDown(MouseEventButton.RightButton); mouseDown = true; } /* middle button down? */ if (GameInput.MouseState.MiddleButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed) { detected.Body.GameObject.OnMouseDown(MouseEventButton.MiddleButton); mouseDown = true; } /* left button click? */ if (GameInput.IsMouseKeyPressed(MouseEventButton.LeftButton)) { detected.Body.GameObject.OnMouseClick(MouseEventButton.LeftButton); mouseDown = true; } /* right button click? */ if (GameInput.IsMouseKeyPressed(MouseEventButton.RightButton)) { detected.Body.GameObject.OnMouseClick(MouseEventButton.RightButton); mouseDown = true; } /* middle button click? */ if (GameInput.IsMouseKeyPressed(MouseEventButton.MiddleButton)) { detected.Body.GameObject.OnMouseClick(MouseEventButton.MiddleButton); mouseDown = true; } if (mouseDown) { detected.Body.GameObject.mouseDown = true; } else { if (detected.Body.GameObject.mouseDown) { detected.Body.GameObject.mouseDown = false; detected.Body.GameObject.OnMouseUp(); } } } } }