Пример #1
0
        public void Reset(GameEngine gameEngine, MainCharacter mainCharacter, ContentManager content)
        {
            content.Unload();

            MainCharacter = mainCharacter;
            Content       = content;
            Arial         = content.Load <SpriteFont>("Fonts/Arial");

            // Initialize buttons
            StartButtonImg = Content.Load <Texture2D>("start");
            ExitButtonImg  = Content.Load <Texture2D>("exit");
            LoadingTxt     = Content.Load <Texture2D>("loading");

            float StartX   = (Game1.GetWindowSize().X / 2) - (StartButtonImg.Width / 2);
            float StartY   = Game1.GetWindowSize().Y / 3;
            float ExitX    = (Game1.GetWindowSize().X / 2) - (ExitButtonImg.Width / 2);
            float ExitY    = 2 * Game1.GetWindowSize().Y / 3;
            float LoadingX = (Game1.GetWindowSize().X / 2) - (LoadingTxt.Width / 2);
            float LoadingY = (Game1.GetWindowSize().Y / 2) - (LoadingTxt.Height / 2);

            StartButton   = new ClickableTexture(StartButtonImg, new Vector2(StartX, StartY));
            ExitButton    = new ClickableTexture(ExitButtonImg, new Vector2(ExitX, ExitY));
            LoadingTxtPos = new Vector2(LoadingX, LoadingY);

            // important to reset these components to null when the manager is reloaded
            KeyboardInputMenu = null;

            GState = StartupState.StartMenu;

            MouseState     = Mouse.GetState();
            PrevMouseState = MouseState;
        }
Пример #2
0
        /* MouseClick Handler for Start Menu */
        private void MouseClicked(int x, int y)
        {
            Rectangle mouseClickRect = new Rectangle(x, y, 10, 10);

            switch (GState)
            {
            case StartupState.StartMenu:
                bool ClickedPlay = StartButton.Rect.Contains(mouseClickRect);
                if (ClickedPlay && MainCharacter.Name == null)
                {
                    GState = StartupState.EnterName;
                    // We don't want this long term, just to test KeyboardInputMenu
                    string Query = "Hi, what's your name?";
                    KeyboardInputMenu = new KeyboardInputMenu(Query, Content, Arial);
                }
                else if (ClickedPlay)
                {
                    GState    = StartupState.Loading;
                    IsLoading = false;
                }
                else if (ExitButton.Rect.Contains(mouseClickRect))
                {
                    Game1.QuitGame();
                }
                break;

            case StartupState.EnterName:
                if (KeyboardInputMenu.IsConfirming(mouseClickRect))
                {
                    GState             = StartupState.Loading;
                    MainCharacter.Name = KeyboardInputMenu.GetText();
                }
                if (KeyboardInputMenu.IsCancelling(mouseClickRect))
                {
                    GState            = StartupState.StartMenu;
                    KeyboardInputMenu = null;
                }
                break;

            default:
                break;
            }
        }