public virtual void Update(SAMTime gameTime) { #if DEBUG UPSCounter.StartCycle(gameTime); #endif var state = InputStateMan.GetNewState(MapOffsetX, MapOffsetY); #if DEBUG if (_updateDebugSettings) { DebugSettings.Update(state); } GCMonitor.Update(gameTime, state); #endif if (FloatMath.IsZero(GameSpeed)) { // render these two always DebugDisp.Update(gameTime, state); GameHUD.Update(gameTime, state); return; } else if (FloatMath.IsOne(GameSpeed)) { InternalUpdate(gameTime, state, gameTime); } else if (GameSpeed < 1f) { var internalTime = gameTime.Stretch(GameSpeed, 1); InternalUpdate(internalTime, state, gameTime); } else if (GameSpeed > 1f) { int runCount = (int)GameSpeed; var timeVirtual = gameTime.Stretch(GameSpeed / runCount, 1f / runCount); var timeReal = gameTime.Stretch(1f / runCount, 1f / runCount); for (int i = 0; i < runCount; i++) { InternalUpdate(timeVirtual, state, timeReal); } } else { // okay - dafuq throw new ArgumentException(nameof(GameSpeed) + " = " + GameSpeed, nameof(GameSpeed)); } #if DEBUG UPSCounter.EndCycle(); #endif }
public void TestHUDMethods() { GameHUD HUD = new GameHUD(); try{ HUD.Start(); HUD.OnGUI(); HUD.Update(); }catch(Exception e) { //Something went wrong Assert.True(false,"error "+e.ToString()); } }
public void TestHUDMethods() { GameHUD HUD = new GameHUD(); try{ HUD.Start(); HUD.OnGUI(); HUD.Update(); }catch (Exception e) { //Something went wrong Assert.True(false, "error " + e.ToString()); } }
/// <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) { // update inputs foreach (var controller in controllers) { controller.UpdateInput(); } if (!IsGameOver) { LevelScroller.layers[2].Enabled = true; LevelScroller.layers[3].Enabled = true; LevelScroller.layers[4].Enabled = false; LevelScroller.layers[5].Enabled = false; if (Paused) { MediaPlayer.Pause(); } else { MediaPlayer.Resume(); } GameHUD.Update(gameTime); // add to-spawn items to the gameobjects list GameObjects.AddRange(Level.ToSpawn); Level.ToSpawn.Clear(); if (Mario.IsDead) { if (Mario.TimeDied.TotalMilliseconds == 0) { Mario.TimeDied = gameTime.TotalGameTime; } else if (gameTime.TotalGameTime > Mario.TimeDied + new TimeSpan(0, 0, 0, 3)) { if (HUDMap["Lives"] <= 0) { GameOver(); } else { HUDMap["Lives"]--; LoadGameLevel("mini_game"); MediaPlayer.Play(backGroundMusic); Mario.Respawn(); } } } if (Mario.ReachedGate) { Mario.ReachedGate = false; LoadGameLevel("hospital"); Mario.Respawn(); } if (Mario.OnFlagpole) { if (Mario.TimeWon.TotalMilliseconds == 0) { Mario.TimeWon = gameTime.TotalGameTime; } else if (gameTime.TotalGameTime > Mario.TimeWon + new TimeSpan(0, 0, 0, 5)) { GameWon(); } } // update all game objects (their sprites are updated inside) foreach (var obj in GameObjects) { if (!Paused) { obj.Update(gameTime); } } UpdateCollisions(); // update collisions CleanDeletedObjects(); // remove any deleted items from anywhere they might remain } base.Update(gameTime); LevelScroller.Update(); }
void Update() { character.Update(); hud.Update(); }
public override void Update(GameTime gameTime) { base.Update(gameTime); if (gameState == MazeGameState.Playing) { if (YnG.Keys.JustPressed(Keys.Escape) || YnG.Gamepad.JustPressed(PlayerIndex.One, Buttons.Back)) { gameState = MazeGameState.Terminated; OnExitRequest(EventArgs.Empty); } soundTimer.Update(gameTime); elapsedPartyTime += gameTime.ElapsedGameTime.Milliseconds; timeTimer.Update(gameTime.ElapsedGameTime.Milliseconds); _gameHUD.Update(gameTime); _gameHUD.Time = timeTimer.ToString(); control.Update(gameTime); #if DEBUG if (YnG.Keys.JustPressed(Keys.F8)) { OnLevelFinished(new LevelFinishEventArgs(score, (_mazeLevel.Id + 1), false)); } #endif string collider = control.ValidatePosition(_mazeLevel.Walls); if (collider == "END") { gameState = MazeGameState.Ending; UpdateScore(50); } else if (collider == "WALL") { if (YnG.AudioManager.SoundEnabled) { YnG.AudioManager.PlaySound("Audio/bat", 1.0f, 1.0f, 0.0f); YnG.AudioManager.SoundEnabled = false; soundTimer.Start(); } } groundPlayerBoundingSphere.Center = new Vector3(Camera.Position.X, 1, Camera.Position.Z); foreach (YnMeshModel model in _mazeLevel.Items) { if (model.Active) { if (groundPlayerBoundingSphere.Intersects(model.BoundingSphere)) { YnG.AudioManager.PlaySound("Audio/kristal", 1.0f, 1.0f, 0.0f); UpdateScore((model as AnimatedItemMesh).Points); _gameHUD.MiniMap.UpdateItemStatus(Camera.X, Camera.Z); _gameHUD.UpdateNbCrystals(); model.Active = false; } } } if (_gameHUD.MiniMap.Enabled) { _gameHUD.MiniMap.UpdatePlayerPosition(Camera.X, Camera.Z); } if (virtualPad.Enabled) { virtualPad.Update(gameTime); } } else if (gameState == MazeGameState.Ending) { gameState = MazeGameState.Terminated; bool finishedGame = false; int nextLevel = (_mazeLevel.Id + 1); if (nextLevel > GameConfiguration.LevelCount) { nextLevel = 1; finishedGame = true; } score.ElapsedTime = elapsedPartyTime; OnLevelFinished(new LevelFinishEventArgs(score, nextLevel, finishedGame)); } }