Ejemplo n.º 1
0
        protected override void Update(GameTime gameTime)
        {
            MouseState mouseState = Mouse.GetState();

            //Initialise gamePadState
            gamePadState  = GamePad.GetState(PlayerIndex.One);
            gamePadState2 = GamePad.GetState(PlayerIndex.Two);

            //Update cursor for 360 controller input


            if (gamePadState.ThumbSticks.Left.X > 0.0f)
            {
                xbCursorX += 5;
            }

            if (gamePadState.ThumbSticks.Left.X < 0.0f)
            {
                xbCursorX -= 5;
            }

            if (gamePadState.ThumbSticks.Left.Y > 0.0f)
            {
                xbCursorY -= 5;
            }

            if (gamePadState.ThumbSticks.Left.Y < 0.0f)
            {
                xbCursorY += 5;
            }

            if (gamePadState.Buttons.Back == ButtonState.Pressed)
            {
                //omg nothing
            }


            if (clickEnabled)
            {
#if WINDOWS
                if (mouseState.LeftButton == ButtonState.Pressed)
                {
                    switch (gameState)
                    {
                    case (int)State.Menu:
                        menu.Click(mouseState, ref gameState);
                        break;

                    case (int)State.Instructions:
                        instructions.Click(mouseState, ref gameState);
                        break;

                    case (int)State.Game:
                        board.Click(mouseState);
                        break;

                    case (int)State.Credits:
                        credits.Click(ref gameState);
                        break;

                    case (int)State.AIGame:
                        aiBoard.Click(mouseState);
                        break;

                    case (int)State.Othello:
                        othello.Click(mouseState);
                        break;
                    }
                    clickEnabled = false;
                }
#endif

#if XBOX
                /*
                 * XBOX port code
                 *
                 *
                 *
                 * Modified/Created by: Miles Aurbeck
                 * May 06 2009
                 */
                if (Game.previousGamePadState.Buttons.A == ButtonState.Pressed &&
                    Game.gamePadState.Buttons.A == ButtonState.Released)
                {
                    switch (gameState)
                    {
                    case (int)State.Menu:
                        menu.aButtClick(ref gameState);
                        break;

                    case (int)State.Instructions:
                        instructions.aButtClick(ref gameState);
                        break;

                    case (int)State.Game:
                        board.aButtClick();
                        break;

                    case (int)State.Credits:
                        credits.Click(ref gameState);
                        break;

                    case (int)State.AIGame:
                        aiBoard.Click(mouseState);
                        break;

                    case (int)State.Othello:
                        othello.Click(mouseState);
                        break;
                    }
                    clickEnabled = false;
                }
#endif
            }
            else
            {
#if WINDOWS
                if (mouseState.LeftButton == ButtonState.Released)
                {
                    clickEnabled = true;
                }
#endif

#if XBOX
                /*
                 * XBOX port code
                 *
                 *
                 *
                 * Modified/Created by: Miles Aurbeck
                 * May 06 2009
                 */
                if (Game.previousGamePadState.Buttons.A == ButtonState.Released)
                {
                    clickEnabled = true;
                }
#endif
            }

            // Find which update logic to perform
            switch (gameState)
            {
            case (int)State.Menu:
                menu.Update(gameTime, ref gameState);
                break;

            case (int)State.Instructions:
                instructions.Update(gameTime, ref gameState);
                break;

            case (int)State.Game:
                board.Update(gameTime, ref gameState);
                break;

            case (int)State.Credits:
                credits.Update(gameTime, ref gameState);
                break;

            case (int)State.Othello:
                othello.Update(gameTime, ref gameState);
                break;

            case (int)State.AIGame:
                aiBoard.Update(gameTime, ref gameState);
                break;
            }

            // Quit the game if told to do so
            if (gameState == (int)State.Quit)
            {
                this.Exit();
            }


            previousGamePadState = gamePadState;
            base.Update(gameTime);
        }