Пример #1
0
        public void Update(GameTime gameTime, Game1 game1, MouseState mouseState, KeyboardState keyboardState)
        {
            if (gameTime.TotalGameTime.TotalMilliseconds >= LoadingTime - 500)
            {
                if (counter < TimeSpan.FromMilliseconds(1000))
                {
                    counter += gameTime.ElapsedGameTime;
                }
                if (counter > TimeSpan.FromMilliseconds(1000))
                {
                    if (isAdding)
                    {
                        PressAlpha += (int)gameTime.ElapsedGameTime.TotalMilliseconds / 2;
                    }
                    else
                    {
                        PressAlpha -= (int)gameTime.ElapsedGameTime.TotalMilliseconds / 2;
                    }

                    if (PressAlpha > 255 | PressAlpha < 0)
                    {
                        if (!isAdding)
                        {
                            counter = TimeSpan.Zero;
                        }
                        isAdding = !isAdding;
                    }
                }
            }
            if (gameTime.TotalGameTime.TotalMilliseconds < LoadingTime)
            {
                loading.Update(gameTime, game1);
            }

            if (!(timePressed.TotalMilliseconds < DummyTimeSpan.TotalMilliseconds) && gameTime.TotalGameTime.TotalMilliseconds >= LoadingTime + TimeBeforeUserCanContinue && (keyboardState.GetPressedKeys().Length > 0 || mouseState.LeftButton == ButtonState.Pressed))
            {
                timePressed = gameTime.TotalGameTime;
                Game1.PlaySound("back");
            }
            if (gameTime.TotalGameTime.TotalMilliseconds - timePressed.TotalMilliseconds >= TimeToWaitAfterPressed)
            {
                isGoingToMenu = true;
            }

            if (isGoingToMenu)
            {
                logoAnimation += gameTime.ElapsedGameTime;
                if (logoAnimation.TotalMilliseconds >= timeBeforeMoving + logoMoveTime + timeAfterAnimation)
                {
                    game1.ChangeGameState(GameState.Menu);                                                                                          // animation finished
                }
            }
        }
Пример #2
0
        public void Update(GameTime gameTime, Game1 game1, MouseState state, MouseState lState, KeyboardState keystate, KeyboardState lastKeyState)
        {
            game1.IsMouseVisible = true;
            time      += gameTime.ElapsedGameTime;
            soundTime += gameTime.ElapsedGameTime;
            backGroundAlphaAnimation.Update(gameTime.ElapsedGameTime);


            int lastSelected = selected;

            #region input
            if (UsedKeys["down"].isPressed() && time.TotalMilliseconds >= 200)
            {
                selected++;
                if (selected > 5)
                {
                    if (time.TotalMilliseconds >= 300)
                    {
                        selected = 1;
                        time     = TimeSpan.Zero;
                    }
                    else
                    {
                        selected = 5;
                    }
                }
                else
                {
                    time = TimeSpan.Zero;
                }
            }
            else if (UsedKeys["up"].isPressed() && time.TotalMilliseconds >= 200)
            {
                selected--;
                if (selected < 1)
                {
                    if (time.TotalMilliseconds >= 300)
                    {
                        selected = 5;
                        time     = TimeSpan.Zero;
                    }
                    else
                    {
                        selected = 1;
                    }
                }
                else
                {
                    time = TimeSpan.Zero;
                }
            }

            for (int i = 0; i < TextPositions.Length; i++)
            {
                if (Game1.isHover(state, TextPositions[i]))
                {
                    if (state.X != lState.X || state.Y != lState.Y)
                    {
                        selected = i + 1;
                        time     = TimeSpan.Zero;
                    }
                    if (UsedKeys["mouse"].isPressed())
                    {
                        Game1.PlaySound("click");
                        switch (selected)
                        {
                        case 1:
                            if (!isMainMenu)
                            {
                                Game1.PlaySound("back");
                                game1.ChangeGameState(GameState.Playing);
                            }
                            else
                            {
                                if (!isFirstTime)
                                {
                                    game1.RestartGame(); isFirstTime = false;
                                }
                                game1.ChangeGameState(GameState.Loading);
                            }
                            //backGroundMusic.Stop();
                            break;

                        case 4: if (!isMainMenu)
                            {
                                game1.ChangeGameState(GameState.Menu);
                            }
                            break;

                        case 5: game1.ExitGame();
                            break;
                        }
                    }
                }
            }

            if (UsedKeys["enter"].isPressed())
            {
                if (!(selected == 1 && !isMainMenu))
                {
                    Game1.PlaySound("click");
                }
                switch (selected)
                {
                case 1:
                    if (!isMainMenu)
                    {
                        Game1.PlaySound("back");
                        game1.ChangeGameState(GameState.Playing);
                    }
                    else
                    {
                        if (!isFirstTime)
                        {
                            game1.RestartGame(); isFirstTime = false;
                        }
                        game1.ChangeGameState(GameState.Loading);
                    }
                    //backGroundMusic.Stop();
                    break;

                case 4: if (!isMainMenu)
                    {
                        game1.ChangeGameState(GameState.Menu);
                    }
                    break;

                case 5: game1.ExitGame();
                    break;
                }
            }
            #endregion

            if (soundTime.TotalMilliseconds >= 20)
            {
                if (lastSelected != selected)
                {
                    Game1.PlaySound("button");
                    soundTime = TimeSpan.Zero;
                }
            }

            if (!isMainMenu)
            {
                if (UsedKeys["escape"].isPressed())
                {
                    Game1.PlaySound("back");
                    game1.ChangeGameState(GameState.Playing);
                }
            }
            foreach (KeyValuePair <string, Key> key in UsedKeys)
            {
                if (key.Key != "mouse")
                {
                    key.Value.Update(keystate, lastKeyState);
                }
                else
                {
                    key.Value.Update(state, lState);
                }
            }
        }