Example #1
0
        private void LoadStartMenu()
        {
            this.spriteBatch = new SpriteBatch(GraphicsDevice);

            Paragraph header = new Header("Welcome to Evolution-Sim", Anchor.TopCenter, new Vector2(0, WINDOW_HEIGHT / 8));

            header.FillColor = Color.White;
            header.Scale     = 5.0f;

            HorizontalLine horizontalLine = new HorizontalLine(Anchor.TopCenter, new Vector2(0, WINDOW_HEIGHT / 4));

            horizontalLine.Padding = new Vector2(10, 10);

            Button sandboxMode     = new Button("Sandbox Mode", ButtonSkin.Default, Anchor.AutoCenter, new Vector2(WINDOW_WIDTH / 6, 50), new Vector2(0, WINDOW_HEIGHT / 8));
            Button simulationSetup = new Button("Setup Simulation", ButtonSkin.Default, Anchor.AutoCenter, new Vector2(WINDOW_WIDTH / 6, 50));
            Button about           = new Button("About", ButtonSkin.Default, Anchor.AutoCenter, new Vector2(WINDOW_WIDTH / 6, 50));

            Button exit = new Button("Exit", ButtonSkin.Default, Anchor.AutoCenter, new Vector2(WINDOW_WIDTH / 6, 50));

            sandboxMode.OnClick = (Entity btn) => {
                state = Utility.GameState.Running;
                UserInterface.Active.Clear();
                LoadContent();
            };
            simulationSetup.OnClick = (Entity btn) => {
                state = Utility.GameState.Setup;
                UserInterface.Active.Clear();
                LoadContent();
            };
            about.OnClick = (Entity btn) => {
                state = Utility.GameState.About;
                UserInterface.Active.Clear();
                LoadContent();
            };
            exit.OnClick = (Entity btn) => {
                state = Utility.GameState.Exit;
                LoadContent();
            };


            UserInterface.Active.AddEntity(header);
            UserInterface.Active.AddEntity(horizontalLine);
            UserInterface.Active.AddEntity(sandboxMode);
            UserInterface.Active.AddEntity(simulationSetup);
            UserInterface.Active.AddEntity(about);
            UserInterface.Active.AddEntity(exit);
        }
Example #2
0
        /// <summary>
        /// Update the application
        /// </summary>
        /// <param name="gameTime">Delta - time since last update call</param>
        protected override void Update(GameTime gameTime)
        {
            switch (state)
            {
            case Utility.GameState.Running:
                this.simulation.Update(gameTime);
                this.overlay.Update(gameTime, simulation.GridInteractionManager.SelectedOrganism);
                break;

            case Utility.GameState.Setup:
                if (SetupSimulation.SetupFinished)
                {
                    state = Utility.GameState.Running;
                    UserInterface.Active.Clear();
                    LoadContent();
                }
                else
                {
                    this.setupSimulation.Update(gameTime);
                }
                break;

            case Utility.GameState.About:
                if (this.about.backButtonPressed)
                {
                    state = Utility.GameState.StartMenu;
                    LoadContent();
                }

                break;

            case Utility.GameState.StartMenu:


                break;

            case Utility.GameState.Pause:

                break;
            }
            UserInterface.Active.Update(gameTime);

            // Take updates from input devices
            var escapeClicked = Keyboard.GetState().IsKeyDown(Keys.Escape);

            if (escapeClicked)
            {
                if (state == Utility.GameState.Running)
                {
                    //state = Utility.GameState.Pause;

                    //LoadContent();
                }
                else if (state == Utility.GameState.Pause)
                {
                }
                else
                {
                    state = Utility.GameState.Exit;
                    Exit();
                }
            }



            base.Update(gameTime);
        }