/// <summary> /// Creates a new main menu view /// </summary> /// <param name="game">The Game instance that will show this view</param> public Menu(Game1 game) : base(game) { Vector2 pos = new Vector2(game.getWidth() * 0.88f, 0); infoButton = new Button("info", pos, game.Content); infoButton.ButtonPressed += (sender => game.ShowInfo()); if (game.paused && !game.won) { Button tmp = new Button("resume", pos, game.Content); tmp.ButtonPressed += (sender => game.Resume()); buttons.Add(tmp); } Button button = new Button("newGame", pos, game.Content); button.ButtonPressed += (sender => game.ShowLevelSelector(true)); buttons.Add(button); button = new Button("levelEditor", pos, game.Content); button.ButtonPressed += (sender => game.StartLevelEditor()); buttons.Add(button); button = new Button("highScores", pos, game.Content); button.ButtonPressed += (sender => game.ShowLevelSelector(false)); buttons.Add(button); button = new Button("exit", pos, game.Content); button.ButtonPressed += (sender => game.Exit()); buttons.Add(button); int menuHeight = (buttons.Count - 1) * spacing; foreach (Button but in buttons) { menuHeight += but.Height; } pos.Y = game.getHeight() * 0.5f - menuHeight * 0.5f; for (int i = 0; i < buttons.Count; i++) { pos.X = game.getWidth() * 0.5f - buttons[i].Width * 0.5f; buttons[i].Position = pos; pos.Y += (buttons[i].Height + spacing); } }