Example #1
0
        /// <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);
            }
        }
Example #2
0
        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();
                        }
                    }
                }
            }
        }