public void Update(GameTime gameTime) { const float lcBirdPadding = 50; using (var lInactiveBirds = new BatchCollectionRemover<BirdEntity>(this.Birds)) { lInactiveBirds.AddRange(this.DeadBirds); this.DeadBirds.Clear(); foreach (var lBird in this.Birds) { lBird.MovementBehavior.Move(lBird, gameTime); if ((lBird.Position.X + lBird.Size.X < -lcBirdPadding) || (lBird.Position.Y + lBird.Size.Y < -lcBirdPadding) || (lBird.Position.X > this.ScreenSize.X + lcBirdPadding) || (lBird.Position.Y > this.ScreenSize.Y + lcBirdPadding)) { lInactiveBirds.Add(lBird); } lBird.ShootingBehavior.FireWhenReady(lBird, gameTime); } } }
/// <summary> /// Updates all the bullets by allowing them to move. /// </summary> /// <param name="gameTime">The current game time.</param> public void Update(GameTime gameTime) { const float lcBulletPadding = 50; using (var lDeadBullets = new BatchCollectionRemover<BulletEntity>(this.Bullets)) { foreach (var lBullet in this.Bullets) { lBullet.MovementBehavior.Move(lBullet, gameTime); if ((lBullet.Position.X < -lcBulletPadding) || (lBullet.Position.Y < -lcBulletPadding) || (lBullet.Position.X + lBullet.Size.X > this.ScreenSize.X + lcBulletPadding) || (lBullet.Position.Y + lBullet.Size.Y > this.ScreenSize.Y + lcBulletPadding)) { lDeadBullets.Add(lBullet); } } } }
public void Update(GameTime gameTime) { if (this.NewCloudTimer == 0) { this.NewCloudTimer = this.Random.Next(10, 80); this.AddCloud(); } this.NewCloudTimer--; using (var lOldClouds = new BatchCollectionRemover<SimpleGameEntity>(this.Clouds)) { foreach (var lCloud in this.Clouds) { lCloud.MovementBehavior.Move(lCloud, gameTime); if (lCloud.Position.X < -lCloud.Size.X) { lOldClouds.Add(lCloud); } } } }
/// <summary> /// Updates all the coins by allowing them to move. /// </summary> /// <param name="gameTime">The current game time.</param> public void Update(GameTime gameTime) { const float lcCoinPadding = 10; using (var lDeadCoins = new BatchCollectionRemover<SimpleGameEntity>(this.Coins)) { foreach (var lCoin in this.Coins) { lCoin.MovementBehavior.Move(lCoin, gameTime); if ((lCoin.Position.X < lcCoinPadding) || (lCoin.Position.Y < lcCoinPadding) || (lCoin.Position.X + lCoin.Size.X > this.ScreenSize.X + lcCoinPadding) || (lCoin.Position.Y + lCoin.Size.Y > this.ScreenSize.Y + lcCoinPadding)) { lDeadCoins.Add(lCoin); } } } }