public static void moveFireballs(GameTime gameTime) { for (int i = 0; i < Fireball.Fireballs.Count;) { Fireball b = Fireball.Fireballs[i]; b.movePrecise(b.speed, gameTime, false); if (b.Y < b.minY - b.Height || b.Y > b.maxY + b.Height || b.X < b.minX - b.Width || b.X > b.maxX + b.Width) { Fireball.Fireballs.Remove(b); } else { i++; } } }
public override void Update(GameTime gameTime) { // check for exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { Game1.Game.Exit(); } if (Keyboard.GetState(PlayerIndex.One).IsKeyDown(Keys.Escape)) { cleanup(); returnControl("title"); return; } // mute check checkForMute(); // pause check if (Keyboard.GetState(PlayerIndex.One).IsKeyUp(Keys.P)) { allowPause = true; } if (allowPause && Keyboard.GetState(PlayerIndex.One).IsKeyDown(Keys.P)) { paused ^= true; allowPause = false; if (paused) { //MediaPlayer.Pause(); MediaPlayer.Volume /= 4; foreach (PowerUp p in PowerUp.AlivePowerUps) { p.AliveTimer.Stop(); } foreach (PowerUp p in isaac.ActivePowerUps) { p.ActiveTimer.Stop(); } } else { //MediaPlayer.Resume(); MediaPlayer.Volume *= 4; foreach (PowerUp p in PowerUp.AlivePowerUps) { p.AliveTimer.Start(); } foreach (PowerUp p in isaac.ActivePowerUps) { p.ActiveTimer.Start(); } } } if (paused) { return; } //show fps every 1 second fpsElapsedTime += gameTime.ElapsedGameTime; if (fpsElapsedTime > TimeSpan.FromSeconds(1)) { Game1.Game.Window.Title = "FPS: " + frameCounter; fpsElapsedTime -= TimeSpan.FromSeconds(1); frameCounter = 0; } isaacHurtAnimation.Update(); //isaacHurtMove(gameTime); spawnPotions(gameTime); moveIsaac(gameTime); Bullet.moveBullets(gameTime); rotatePeanuts(gameTime); Fireball.moveFireballs(gameTime); rotateFireballs(gameTime); Laser2.UpdateLasers(gameTime); SeekerSnake.UpdateSeekerSnakes(gameTime); checkForPowerUpSpawnExpire(gameTime); isaac.CalculateCorners(); alex.CalculateCorners(); foreach (Laser2 laser in Laser2.Lasers) { laser.CalculateCorners(); } foreach (Bullet p in Bullet.Peanuts) { p.CalculateCorners(); } checkForPowerUpAcquisition(); acquirePotions(); isaacShoot(gameTime); checkForPeanutHits(); checkForSledgeHammerUse(gameTime); checkForSledgeHammerHits(); if (checkForIsaacHurt()) { isaacDeath(); cleanup(); returnControl("title"); return; } if (alex.HP == 0) { cleanup(); returnControl("postgame"); return; } alex.Update(gameTime, isaac); updateHearts(); shrinkPeanuts(gameTime); burnPeanuts(gameTime); moveBurningPeanuts(gameTime); updateSuperFireballLoopingSound(); }