/// <summary> /// Creates a Main Menu /// </summary> public static Menu createMainMenu(MultiController controllers, List<Controller> allControllers, Rectangle bounds, GameManager pmanager, Boolean recommencer = false) { Menu MainMenu = new Menu(controllers, bounds); MainMenu.BaseFrame.Layout = Layout.VerticalShared; new Label(MainMenu.BaseFrame, "Asteroids") { Scale = new Vector2(2, 2), FontColor = Color.White }; ScrollList sl = new ScrollList(MainMenu.BaseFrame); sl.Focus = true; sl.LayoutStretch = 4; sl.Scale = new Vector2(2, 2); Label lbl = new Label(sl, (recommencer ? "Restart" : "Start")); lbl.OnA = delegate() { MainMenu.Close(); }; lbl = new Label(sl, "Choose Level"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = new ChooseLevelMenu(controllers, allControllers, bounds, pmanager); MainMenu.ActiveSubMenu.OnClosing = delegate() { MainMenu.Close(); }; }; /*lbl = new Label(sl, "Options"); lbl.OnA = delegate() { //MainMenu.ActiveSubMenu = new OptionButtonMenu(controllers, allControllers, bounds); };*/ lbl = new Label(sl, "Exit"); lbl.OnA = delegate() { MainMenu.Close(); pmanager._game.Exit(); }; return MainMenu; }
/// <summary> /// Creates a Main Menu /// </summary> public static Menu createMainMenu(MultiController controllers, List<Controller> allControllers, Rectangle bounds) { Menu MainMenu = new Menu(controllers, bounds); MainMenu.BaseFrame.Layout = Layout.VerticalShared; new Label(MainMenu.BaseFrame, "Display Spring Demo") { Scale = new Vector2(2, 2), FontColor = Color.White }; ScrollList sl = new ScrollList(MainMenu.BaseFrame); sl.Focus = true; sl.LayoutStretch = 4; sl.Scale = new Vector2(2,2); Label lbl = new Label(sl, "Frames Menu"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = new FrameMenu(controllers, allControllers, bounds); }; lbl = new Label(sl, "Open submenu of this menu (recursion!)"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = MenuCreator.createMainMenu(controllers, allControllers, bounds); }; lbl = new Label(sl, "Scroll List Menu"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = new ButtonScrollListMenu(controllers, allControllers, bounds); }; lbl = new Label(sl, "Multi Texture Menu"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = new MultiTextureMenu(controllers, allControllers, bounds); }; lbl = new Label(sl, "Input Menu"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = new InputMenu(controllers, allControllers, bounds); }; lbl = new Label(sl, "Option Button Menu"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = new OptionButtonMenu(controllers, allControllers, bounds); }; lbl = new Label(sl, "Exit"); lbl.OnA = delegate() { MainMenu.Close(); }; return MainMenu; }
/// <summary> /// Creates a Death Menu /// </summary> public static Menu createDeathMenu(MultiController controllers, List<Controller> allControllers, Rectangle bounds, GameManager pmanager) { Menu MainMenu = new Menu(controllers, bounds); MainMenu.BaseFrame.Layout = Layout.VerticalShared; new Label(MainMenu.BaseFrame, "You D.I.E.D.!!!!!") { Scale = new Vector2(2, 2), FontColor = new Color(200,0,0), Animation = AnimateType.Size }; new Label(MainMenu.BaseFrame, "Score Level '" + pmanager.nivCourant.GetName() + "': " + pmanager._playerScore.ToString()) { Scale = new Vector2(2, 2), FontColor = Color.White }; ScrollList sl = new ScrollList(MainMenu.BaseFrame); sl.Focus = true; sl.LayoutStretch = 4; sl.Scale = new Vector2(2, 2); Label lbl = new Label(sl, "Try Again!"); lbl.OnA = delegate() { MainMenu.Close(); }; lbl.FontColor = Color.DarkBlue; lbl.FontFocusColor = Color.DarkRed; lbl = new Label(sl, "Choose Level"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = new ChooseLevelMenu(controllers, allControllers, bounds, pmanager); MainMenu.ActiveSubMenu.OnClosing = delegate() { MainMenu.Close(); }; }; lbl.FontColor = Color.DarkBlue; lbl.FontFocusColor = Color.DarkRed; lbl = new Label(sl, "Quit"); lbl.OnA = delegate() { MainMenu.Close(); pmanager._game.Exit(); }; lbl.FontColor = Color.DarkBlue; lbl.FontFocusColor = Color.DarkRed; return MainMenu; }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); App.LoadContent(Content, GraphicsDevice); Menu.LoadContent(GraphicsDevice, App.MenuFont); mainMenu = MenuCreator.createMainMenu(App.PrimaryController, App.Controllers, App.TitleSafeArea); }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { KeyboardState keyboardState = Keyboard.GetState(); if (mainMenu.IsAlive) { updates.Update(gameTime); mainMenu.Update(gameTime); } // Allows the game to pause and exit if (!mainMenu.IsAlive && (GamePad.GetState(PlayerIndex.One).Buttons.Start == Microsoft.Xna.Framework.Input.ButtonState.Pressed || keyboardState.IsKeyDown(Keys.Escape) && !oldKeyboardState.IsKeyDown(Keys.Escape))) { //mainMenu = MenuCreator.createMainMenu(App.PrimaryController, App.Controllers, App.TitleSafeArea, gameManager, true); mainMenu = MenuCreator.createPauseMenu(App.PrimaryController, App.Controllers, App.TitleSafeArea, gameManager); } // Allows the game to exit if (!mainMenu.IsAlive) { //this.Exit(); gameManager.HandlePlayerInput(keyboardState, Mouse.GetState()); gameManager.UpdateScene(gameTime); } oldKeyboardState = keyboardState; //base.Update(gameTime); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { // TODO: Add your initialization logic here App.Initialize(graphics, updates); base.Initialize(); txtDescription = Content.Load<SpriteFont>("asd"); gameManager = new GameManager.GameManager(this); gameManager.Background = Content.Load<Texture2D>("background"); mainMenu = MenuCreator.createMainMenu(App.PrimaryController, App.Controllers, App.TitleSafeArea, gameManager); }
/// <summary> /// Creates a Win Menu /// </summary> public static Menu createWinMenu(MultiController controllers, List<Controller> allControllers, Rectangle bounds, GameManager pmanager) { Menu MainMenu = new Menu(controllers, bounds); MainMenu.BaseFrame.Layout = Layout.VerticalShared; new Label(MainMenu.BaseFrame, "Level succes!") { Scale = new Vector2(2, 2), FontColor = Color.White }; new Label(MainMenu.BaseFrame, "Score Level '" + pmanager.nivCourant.GetName() + "': " + pmanager._playerScore.ToString()) { Scale = new Vector2(2, 2), FontColor = Color.White }; ScrollList sl = new ScrollList(MainMenu.BaseFrame); sl.Focus = true; sl.LayoutStretch = 4; sl.Scale = new Vector2(2, 2); Label lbl = new Label(sl, "Next Level"); lbl.OnA = delegate() { MainMenu.Close(); }; lbl = new Label(sl, "Choose Level"); lbl.OnA = delegate() { MainMenu.ActiveSubMenu = new ChooseLevelMenu(controllers, allControllers, bounds, pmanager); MainMenu.ActiveSubMenu.OnClosing = delegate() { MainMenu.Close(); }; }; lbl = new Label(sl, "Exit"); lbl.OnA = delegate() { MainMenu.Close(); pmanager._game.Exit(); }; return MainMenu; }
/// <summary> /// Creates a Pause Menu /// </summary> public static Menu createPauseMenu(MultiController controllers, List<Controller> allControllers, Rectangle bounds, GameManager pmanager) { Menu MainMenu = new Menu(controllers, bounds); MainMenu.BaseFrame.Layout = Layout.VerticalShared; new Label(MainMenu.BaseFrame, "Score Level '" + pmanager.nivCourant.GetName() + "': " + pmanager._playerScore.ToString()) { Scale = new Vector2(2, 2), FontColor = Color.White }; new Label(MainMenu.BaseFrame, "Levels Completed : " + pmanager._levelsCompleted.ToString()) { Scale = new Vector2(2, 2), FontColor = Color.White }; new Label(MainMenu.BaseFrame, "Lives Lost : " + pmanager._playerDeaths.ToString()) { Scale = new Vector2(2, 2), FontColor = Color.White }; new Label(MainMenu.BaseFrame, "Asteroids Destroyed : " + pmanager._astKilled.ToString()) { Scale = new Vector2(2, 2), FontColor = Color.White }; new Label(MainMenu.BaseFrame, "Ennemy Ships Destroyed : " + pmanager._enemiKilled.ToString()) { Scale = new Vector2(2, 2), FontColor = Color.White }; ScrollList sl = new ScrollList(MainMenu.BaseFrame); sl.Focus = true; sl.LayoutStretch = 4; sl.Scale = new Vector2(2, 2); Label lbl = new Label(sl, "Resume"); lbl.OnA = delegate() { MainMenu.Close(); }; lbl.FontColor = Color.DarkBlue; lbl.FontFocusColor = Color.DarkRed; lbl = new Label(sl, "Quit"); lbl.OnA = delegate() { MainMenu.Close(); pmanager._game.Exit(); }; lbl.FontColor = Color.DarkBlue; lbl.FontFocusColor = Color.DarkRed; return MainMenu; }