void Update() { if (recordedState != GameState.State) { bool previouslyTheme = recordedState == Menu.GameState.PlayerSelect || recordedState == Menu.GameState.Title; recordedState = GameState.State; switch (recordedState) { case Menu.GameState.PlayerSelect: case Menu.GameState.Title: if (!previouslyTheme) { source.clip = musicTheme; source.Play(); } break; case Menu.GameState.Game: source.clip = musicFight; source.Play(); break; case Menu.GameState.GameResults: source.clip = musicGameOver; source.Play(); break; } } }
static void Main(string[] args) { Dictionary <Menu.GameState, Menu> menus = new Dictionary <Menu.GameState, Menu>(); //Skapar en dictionary. i dictionaryn sparas ett gamestate och en av klasserna till Menu hirearkin på samma platts i dictionaryn menus.Add(Menu.GameState.menu, new Menu()); menus.Add(Menu.GameState.help, new Help()); menus.Add(Menu.GameState.quit, new Quit()); menus.Add(Menu.GameState.inGame, new Game()); menus.Add(Menu.GameState.shop, new Shop()); menus.Add(Menu.GameState.gameLost, new Lose()); //menus.Add(Menu.GameState.gameWon, new Won()); //Lägger till gamestates och klasser från Menu klasshirearkin i dictionaryn //Gör att jag kan kalla på klassen med hjälp av gamestates Menu.GameState currentMenu = Menu.GameState.menu; //Skapar en ny instans av enumen GameState, vilket gör det möjligt att byta mellan states och spela rätt metod baserat på vad spelets gamestate är för tillfället while (currentMenu != Menu.GameState.superQuit) { currentMenu = menus[currentMenu].VisualiseMenu(); //Kommer spela metoden så länge currentMenu inte är superQuit (gamestate som enbart stänger ner programmet) //Checkar dictionaryn menus och spelar metoden VisualiseMenu() baserat på vilket gamestate spelet befinner sig i. } }
void Start() { source = Instance.GetComponent <AudioSource>().audio; source.clip = musicTheme; source.Play(); recordedState = Menu.GameState.Title; }
private string extraAction; //action other than state load (such as saving/loading) /// <summary> /// Creates a button. /// </summary> /// <param name="theText">text inside the button</param> /// <param name="thePosition">position of the button onscreen</param> /// <param name="theState">Game state to load on click</param> public Button(string theText, Vector2 thePosition, Menu.GameState theState) { Position = thePosition; textPosition = new Vector2(Position.X + 5, Position.Y + 5); Text = theText; stateToLoad = theState; BoundingBox = new Rectangle((int)thePosition.X, (int)thePosition.Y, (int)Game1.font.MeasureString(Text).X + 10, (int)Game1.font.MeasureString(Text).Y + 10); }
public override void Update(InputState inputState, Menu.GameState gameState) { base.Update(inputState, gameState); if (Visible && mObject != null && mObject.Position != mWorldPosition) { mWorldPosition = mObject.Position; UpdateButtons(); } }
/// <summary> /// This method is loaded once at the beginning of runtime /// </summary> protected override void Initialize() { cHero = new Hero(); lEnemies = new List <Sprite>(); cArea = new Area(); cGameUI = new GameUI(); cCombat = new Combat(); cSave = new Save(); cMenu = new Menu(); currentState = Menu.GameState.MainMenu; base.Initialize(); //last line }
public void Update(InputState inputState, Menu.GameState gameState) { if ((UnitSelectionBox.Instance.Height > 0.2 || UnitSelectionBox.Instance.Width > 0.2) && mActive) { mTileMenu.Clear(); mObjectMenu.Clear(); } if (UnitSelectionBox.Instance.Height > 0.2 || UnitSelectionBox.Instance.Width > 0.2) { ObjectManager.Instance.ClearSelected(); UnitSelectionBox.Select(ObjectManager.Instance.GetQuadTree().GetGameObjects(new Vector2(UnitSelectionBox.Instance.X, UnitSelectionBox.Instance.Y), new Vector2(UnitSelectionBox.Instance.X + UnitSelectionBox.Instance.Width, UnitSelectionBox.Instance.Y + UnitSelectionBox.Instance.Height), true), false, mMousePosition1); } if (mBox) { UnitSelectionBox.Instance.Update(mMousePosition1); } mTileMenu.Update(inputState, gameState); mObjectMenu.Update(inputState, gameState); }
/// <summary> /// Runs once every frame to update the content on screen. /// </summary> protected override void Update(GameTime gameTime) { if (IsActive) { currentMouseState = Mouse.GetState(); currentKeyboardState = Keyboard.GetState(); cSave.Update(); switch (currentState) { case Menu.GameState.Playing: //see if escape key is pressed if (currentKeyboardState.IsKeyDown(Keys.Escape) && !lastKeyboardState.IsKeyDown(Keys.Escape)) { currentState = Menu.GameState.PauseMenu; } //see if game window is visible if (!IsActive) { currentState = Menu.GameState.PauseMenu; } cArea.Update(gameTime); cHero.Update(gameTime); cCombat.Update(gameTime); foreach (Sprite Enemy in lEnemies) { Enemy.Update(gameTime); } break; case Menu.GameState.MainMenu: cMenu.mainMenu.Update(gameTime); break; case Menu.GameState.HelpMenu: cMenu.helpMenu.Update(gameTime); break; case Menu.GameState.PauseMenu: cMenu.pauseMenu.Update(gameTime); break; case Menu.GameState.WinMenu: cMenu.winMenu.Update(gameTime); break; case Menu.GameState.GameOver: cMenu.gameOverMenu.Update(gameTime); break; case Menu.GameState.ResetStats: cSave.DeleteExisting(cSave.saveFileHero); cSave.DeleteExisting(cSave.saveFileRooms); cHero.totalEnemiesKilled = 0; cHero.Position.X = cHero.startPositionX; cHero.Position.Y = cHero.startPositionY; cArea.currentRoom = 0; currentState = Menu.GameState.Playing; break; case Menu.GameState.Exit: Exit(); break; } lastKeyboardState = currentKeyboardState; lastMouseState = currentMouseState; base.Update(gameTime); //last line } }