Update() public method

public Update ( ) : void
return void
コード例 #1
0
ファイル: GameplayScreen.cs プロジェクト: alyons/ChaosDrive
        /// <summary>
        /// Updates the state of the game. This method checks the GameScreen.IsActive
        /// property, so the game will stop updating when the pause menu is active,
        /// or if you tab away to a different application.
        /// </summary>
        public override void Update(GameTime gameTime, bool otherScreenHasFocus,
                                    bool coveredByOtherScreen)
        {
            base.Update(gameTime, otherScreenHasFocus, false);

            // Gradually fade in or out depending on whether we are covered by the pause screen.
            if (coveredByOtherScreen)
            {
                pauseAlpha = Math.Min(pauseAlpha + 1f / 32, 1);
            }
            else
            {
                pauseAlpha = Math.Max(pauseAlpha - 1f / 32, 0);
            }

            if (IsActive)
            {
                if (playerController.GameOver)
                {
                    HandleGameOver();
                }

                if (enemyController.LevelFinished)
                {
                    HandleLevelComplete();
                }

                var timeWarpFactor = 1.0f;
                foreach (float value in timeFactors.Values)
                {
                    timeWarpFactor *= value;
                }

                var elapsedTime = gameTime.ElapsedGameTime.Milliseconds * timeWarpFactor;
                var timeSpan    = new TimeSpan(0, 0, 0, 0, (int)elapsedTime);
                myGameTime        = new GameTime(myGameTime.TotalGameTime, timeSpan);
                affectedGameTime += elapsedTime;

                #region Update Objects
                #region Update Player
                playerController.Update(elapsedTime);
                #endregion

                #region Update Bullets
                bulletController.Update(elapsedTime);
                #endregion

                #region Update Enemies
                enemyController.Update(elapsedTime);
                #endregion

                #region Update Particles
                particleController.Update(elapsedTime);
                #endregion

                #region Update Background
                backgroundController.Update(elapsedTime);
                #endregion
                #endregion
            }
        }