/// <summary> /// Updates all objects in the world, performs collision between them, /// and handles the time limit with scoring. /// </summary> public void Update(GameTime gameTime, InputState input) { if (this._player != null) { // Pause while the player is dead or time is expired. if (!this._player.IsAlive || (this._player.TimeToLive == TimeSpan.Zero)) { // Remove the player from the level this._player = null; } else { // Check for collisions CollisionManager.Update((float)gameTime.ElapsedGameTime.TotalSeconds); // Perform player and sprite updates this._player.Update(gameTime, input); this._sprites.ForEach((sprite) => sprite.Update(gameTime, input)); } } }
/// <summary> /// Initializes a new instance of the <see cref="CollisionManagerScope" /> class. /// </summary> /// <param name="bounds">The bounds.</param> /// <param name="collisionLayer">The collision layer.</param> public CollisionManagerScope(Rectangle?bounds = null, Layer collisionLayer = null) { this._previousCollisionManager = CollisionManager._collisionManager; CollisionManager._collisionManager = bounds.HasValue ? new CollisionManager(bounds.Value, collisionLayer) : null; }