Exemplo n.º 1
0
        /// <summary>
        /// Performs menu logic, and tries to return choosen
        /// levelQueue, if not choosen returns empty queue to give another frame in menu
        /// </summary>
        /// <returns></returns>
        public Queue <(string name, string arg)> MenuLogic(RenderWindow window)
        {
            var levelNamesQueue = new Queue <(string name, string arg)>();

            var mousePosition = Mouse.GetPosition(window);

            mousePointer.HoversOverItemOff();
            foreach (var button in buttons)
            {
                if (!button.BoundingBox.Contains(mousePosition.X, mousePosition.Y))
                {
                    continue;
                }

                mousePointer.HoversOverItemOn();

                if (!Mouse.IsButtonPressed(Mouse.Button.Left))
                {
                    continue;
                }

                switch (button.Label)
                {
                case "START":
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "your journey begins"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "estimated travel time to the next level: 60 seconds"));
                    levelNamesQueue.Enqueue((name: "Level1", arg: "SendPlayerAsArgument"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "INCOMING!"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "from EVERY SIDE!"));
                    levelNamesQueue.Enqueue((name: "Level2", arg: "SendPlayerAsArgument"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "thanks to all those powerups"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "you have EVOLVED"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "you will need those new powers"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "RIGHT NOW"));
                    levelNamesQueue.Enqueue((name: "Level3", arg: "SendPlayerAsArgument"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "you found him"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "your final enemy"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "THE TRASH BOSS"));
                    levelNamesQueue.Enqueue((name: "LevelBoss", arg: "SendPlayerAsArgument"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "you did it!"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "you saved THE UNIVERSE!"));
                    levelNamesQueue.Enqueue((name: "SimpleTextScreen", arg: "Congratulations!"));
                    break;

                case "HOW TO PLAY":
                    levelNamesQueue.Enqueue((name: "SimpleImageScreen", arg: Resources.HowToPlayBG));
                    break;

                case "GRAPHICS":
                    levelNamesQueue.Enqueue((name: "GraphicsSettings", arg: ""));
                    break;

                case "CREDITS":
                    levelNamesQueue.Enqueue((name: "SimpleImageScreen", arg: Resources.CreditsBG));
                    break;

                case "EXIT":
                    window.Close();
                    break;
                }
            }
            return(levelNamesQueue);
        }
Exemplo n.º 2
0
        public void LevelLogic(ref RenderWindow window)
        {
            var mousePosition = Mouse.GetPosition(window);

            mousePointer.HoversOverItemOff();
            foreach (var button in buttons)
            {
                if (!button.BoundingBox.Contains(mousePosition.X, mousePosition.Y))
                {
                    continue;
                }
                mousePointer.HoversOverItemOn();

                if (!Mouse.IsButtonPressed(Mouse.Button.Left) || clock.ElapsedTime.AsMilliseconds() <= 100)
                {
                    continue;
                }
                window.Close();

                switch (button.Label)
                {
                case "1920x1080":
                    window = new RenderWindow(new VideoMode(1920, 1080), "ASTROMARINES - FULL SCREEN", Styles.Fullscreen);
                    break;

                case "1280x720":
                    window = new RenderWindow(new VideoMode(1280, 720), "ASTROMARINES - FULL SCREEN", Styles.Fullscreen);
                    break;

                case "1366x768":
                    window = new RenderWindow(new VideoMode(1366, 768), "ASTROMARINES - FULL SCREEN", Styles.Fullscreen);
                    break;

                case "1280x800":
                    window = new RenderWindow(new VideoMode(1280, 800), "ASTROMARINES - FULL SCREEN", Styles.Fullscreen);
                    break;

                case "1024x600":
                    window = new RenderWindow(new VideoMode(1024, 600), "ASTROMARINES - FULL SCREEN", Styles.Fullscreen);
                    break;


                case "Windowed 1920x1080":
                    window = new RenderWindow(new VideoMode(1920, 1080), "ASTROMARINES", Styles.None);
                    break;

                case "Windowed 1366x768":
                    window = new RenderWindow(new VideoMode(1366, 768), "ASTROMARINES", Styles.Close);
                    break;

                case "Windowed 1280x720":
                    window = new RenderWindow(new VideoMode(1280, 720), "ASTROMARINES", Styles.Close);
                    break;

                case "Windowed 1280x800":
                    window = new RenderWindow(new VideoMode(1280, 800), "ASTROMARINES", Styles.Close);
                    break;

                case "Windowed 1024x600":
                    window = new RenderWindow(new VideoMode(1024, 600), "ASTROMARINES", Styles.Close);
                    break;
                }

                window.KeyPressed            += Window_KeyPressed;
                window.Closed                += OnClose;
                WindowProperties.WindowWidth  = window.Size.X;
                WindowProperties.WindowHeight = window.Size.Y;
                window.SetFramerateLimit(60);
                window.SetMouseCursorVisible(false);
                window.SetVerticalSyncEnabled(true);

                HasLevelEnded = true;
                Mouse.SetPosition(new Vector2i((int)WindowProperties.WindowWidth / 2, (int)WindowProperties.WindowHeight / 2), window);
            }
        }