public static void Update() { foreach (BaseObject obj in objs) { obj.Update(); } foreach (BaseObject obj in asteroids) { obj.Update(); } bullet?.Update(); ship.Update(); }
public override void Update(GameTime gameTime) { keyState = Keyboard.GetState(); tankRect.X = (int)tankPosition.X; tankRect.Y = (int)tankPosition.Y; tankPosition.Y += tempSpeed; if (bullet.type != BulletType.NullBullet) { bullet.Update(gameTime); } #region Damage Clouds & Sparks if (explosionTimer > 0) { if (health < 25 & !showYourFateIsSealedClouds) { if (damageClouds != null) { damageClouds.Dispose(); damageClouds = null; } while (sparks.Count > 0) { sparks[0].Dispose(); sparks.RemoveAt(0); } showLightDamageClouds = false; showDamageClouds = false; showSevereClouds = false; showCritialClouds = false; showYourFateIsSealedClouds = true; } else if (health >= 25 && health < 75 & !showCritialClouds) { if (damageClouds != null) { damageClouds.Dispose(); damageClouds = null; } while (sparks.Count > 0) { sparks[0].Dispose(); sparks.RemoveAt(0); } showLightDamageClouds = false; showDamageClouds = false; showSevereClouds = false; showCritialClouds = true; showYourFateIsSealedClouds = false; } else if (health >= 75 && health < 125 & !showSevereClouds) { if (damageClouds != null) { damageClouds.Dispose(); damageClouds = null; } while (sparks.Count > 0) { sparks[0].Dispose(); sparks.RemoveAt(0); } showLightDamageClouds = false; showDamageClouds = false; showSevereClouds = true; showCritialClouds = false; showYourFateIsSealedClouds = false; } else if (health >= 125 && health < 175 & !showDamageClouds) { if (damageClouds != null) { damageClouds.Dispose(); damageClouds = null; } while (sparks.Count > 0) { sparks[0].Dispose(); sparks.RemoveAt(0); } showLightDamageClouds = false; showDamageClouds = true; showSevereClouds = false; showCritialClouds = false; showYourFateIsSealedClouds = false; } else if (health >= 175 && health < 200 & !showLightDamageClouds) { if (damageClouds != null) { damageClouds.Dispose(); damageClouds = null; } while (sparks.Count > 0) { sparks[0].Dispose(); sparks.RemoveAt(0); } showLightDamageClouds = true; showDamageClouds = false; showSevereClouds = false; showCritialClouds = false; showYourFateIsSealedClouds = false; } else if (health >= 200) { if (damageClouds != null) { damageClouds.Dispose(); damageClouds = null; } while (sparks.Count > 0) { sparks[0].Dispose(); sparks.RemoveAt(0); } showLightDamageClouds = false; showDamageClouds = false; showSevereClouds = false; showCritialClouds = false; showYourFateIsSealedClouds = false; } if (showLightDamageClouds && damageClouds == null) { initializeDamageClouds(1, 1, Color.White); initializeSpark(1, 5, 2.0f); } else if (showDamageClouds && damageClouds == null) { initializeDamageClouds(5, 5, Color.LightGray); initializeSpark(2, 5, 1.6f); } else if (showSevereClouds && damageClouds == null) { initializeDamageClouds(10, 10, Color.Gray); initializeSpark(3, 10, 1.2f); } else if (showCritialClouds && damageClouds == null) { initializeDamageClouds(20, 20, Color.DarkGray); initializeSpark(4, 15, .8f); } else if (showYourFateIsSealedClouds && damageClouds == null) { initializeDamageClouds(200, 200, Color.DarkSlateGray); initializeSpark(6, 20, .4f); } if (damageClouds != null) { damageClouds.changeEmitterPosition(new Vector2(tankPosition.X + tankPic.Width / 2, tankPosition.Y + tankPic.Height / 2)); damageClouds.ParticleUpdate(gameTime); } foreach (Spark s in sparks) { s.changeEmitterPosition(new Vector2(tankPosition.X + tankPic.Width / 2, tankPosition.Y + tankPic.Height / 2)); } } else { if (damageClouds != null) { damageClouds.Dispose(); damageClouds = null; } while (sparks.Count > 0) { sparks[0].Dispose(); sparks.RemoveAt(0); } } #endregion Damage Clouds & Sparks if (recoil) { tankRecoil(); } if (tanksplosion != null) { explosionTimer -= (float)gameTime.ElapsedGameTime.TotalSeconds; } base.Update(gameTime); }