예제 #1
0
        public void Update(GameTime gameTime)
        {
            KeyboardState keyState = Keyboard.GetState();
            GamePadState  padState = GamePad.GetState(PlayerIndex.One);

            bool moveUp   = false;
            bool moveDown = false;
            bool accept   = false;

            if (keyState.IsKeyUp(Keys.Enter))
            {
                prematureEnter = false;
            }

            if (keyState.IsKeyDown(Keys.Up))
            {
                moveUp = true;
            }
            if (keyState.IsKeyDown(Keys.Down))
            {
                moveDown = true;
            }
            if (keyState.IsKeyDown(Keys.Enter) && prematureEnter == false)
            {
                accept = true;
            }

            Vector2 thumbDir = padState.ThumbSticks.Left.ToPoint().ToVector2();

            if (thumbDir.Length() > .01)
            {
                if (thumbDir.Y > thumbDir.X)
                {
                    moveUp = true;
                }
                if (thumbDir.Y < thumbDir.X)
                {
                    moveDown = true;
                }
            }
            if (padState.IsButtonDown(Buttons.A))
            {
                accept = true;
            }


            if (moveUp && !lastMoveUp)
            {
                buttons[selected].UnSelect();
                selected--;
                // Need extra step because mod of a negative is negative
                selected = (selected + buttons.Count) % buttons.Count;
                buttons[selected].Select();
            }
            if (moveDown && !lastMoveDown)
            {
                buttons[selected].UnSelect();
                selected++;
                selected = (selected + buttons.Count) % buttons.Count;
                buttons[selected].Select();
            }
            if (accept && !lastAccept)
            {
                if (titleString == "Map Select" && selected != triggers.Length - 1)
                {
                    selectedMap = mapSets[selected];
                }
                nextState = triggers[selected];
            }

            lastAccept   = accept;
            lastMoveDown = moveDown;
            lastMoveUp   = moveUp;
        }
예제 #2
0
 public void setMaps(mapSet map)
 {
     maps = map;
 }
예제 #3
0
        public void Update(GameTime gameTime)
        {
            KeyboardState keyState = Keyboard.GetState();
            GamePadState  padState = GamePad.GetState(PlayerIndex.One);

            bool moveLeft  = false;
            bool moveRight = false;
            bool accept    = false;

            if (keyState.IsKeyUp(Keys.Enter))
            {
                prematureEnter = false;
            }

            if (keyState.IsKeyDown(Keys.Left))
            {
                moveLeft = true;
            }
            if (keyState.IsKeyDown(Keys.Right))
            {
                moveRight = true;
            }
            if (keyState.IsKeyDown(Keys.Enter) && prematureEnter == false)
            {
                accept = true;
            }

            Vector2 thumbDir = padState.ThumbSticks.Left.ToPoint().ToVector2();

            if (thumbDir.Length() > .01)
            {
                if (thumbDir.X < 0)
                {
                    moveLeft = true;
                }
                if (thumbDir.X > 0)
                {
                    moveRight = true;
                }
            }
            if (padState.IsButtonDown(Buttons.A))
            {
                accept = true;
            }
            if (padState.IsButtonDown(Buttons.B))
            {
                nextState = prevState;
            }


            if (moveLeft && !lastMoveLeft)
            {
                mapSets[selected].unselect();
                selected--;
                if (selected % THUMBROWSIZE == 7)
                {
                    selected += THUMBROWSIZE;
                }
                else if (selected < 0)
                {
                    selected += mapSets.Count;
                }
                mapSets[selected].select();
            }
            if (moveRight && !lastMoveRight)
            {
                mapSets[selected].unselect();
                selected++;
                //if (selected % THUMBROWSIZE == 0)
                //    selected -= THUMBROWSIZE;
                if (selected >= mapSets.Count)
                {
                    selected = 0;//-= (selected % THUMBROWSIZE);
                }
                mapSets[selected].select();
            }
            if (accept && !lastAccept)
            {
                selectedMap = mapSets[selected];
                nextState   = game;
            }

            lastAccept    = accept;
            lastMoveRight = moveRight;
            lastMoveLeft  = moveLeft;
        }