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); }
/// <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); }