public override void HandleInput(inputState input) { KeyboardState keyboardState = input.currentKeyboardState; GamePadState gamePadState = input.currentGamePadState; if (input.isPause(thisPlayer)) { SManager.AddScreen(new PauseMenu(), thisPlayer); } }
public override void HandleInput(inputState input) { KeyboardState keyboardState = input.currentKeyboardState; GamePadState gamePadState = input.currentGamePadState; if (input.isPause(thisPlayer)) { SManager.AddScreen(new PauseMenu(), thisPlayer); } if (keyboardState.IsKeyDown(Keys.Space) || gamePadState.Triggers.Right > 0) { playerShoot(); } if (keyboardState.IsKeyDown(Keys.Left) || gamePadState.ThumbSticks.Right.X < 0) { if (pSprite.getRotation() < -1.2) { pSprite.rotation = (float)-1.2; } else { pSprite.rotation -= 0.05f; } } if (keyboardState.IsKeyDown(Keys.Right) || gamePadState.ThumbSticks.Right.X > 0) { if (pSprite.getRotation() > 1.2) { pSprite.rotation = (float)1.2; } else { pSprite.rotation += 0.05f; } } }
public override void Update(GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen) { #region Update base.Update(gameTime, otherScreenHasFocus, false); background.Update(2); pSprite.Update(gameTime, viewportRect); #endregion #region Pause Gradient if (coveredByOtherScreen) { pauseGradient = Math.Min(pauseGradient + 1f / 32, 1); } else { pauseGradient = Math.Max(pauseGradient - 1f / 32, 0); } #endregion #region Spawn Enemy Timer if (active) { Random rand = new Random(); elapsedTime += gameTime.ElapsedGameTime.Milliseconds; elapsedTime2 += gameTime.ElapsedGameTime.Milliseconds; if (elapsedTime > spawnTime) { elapsedTime -= spawnTime; enemies.Add(CreateEnemy()); spawnTime = rand.Next(timeLeft * 5, timeLeft * 10); } #endregion #region Update Time Left (not visible) if (elapsedTime2 > secondTime) { elapsedTime2 -= secondTime; timeLeft--; score++; } #endregion #region Shoot Enemies foreach (L2Enemy e in enemies) { e.Update(gameTime, viewportRect); enemyShoot(e); #endregion #region Rotate Enemies if (e.getPos().X > pSprite.getPos().X) { if (e.getRotation() > 0.8) { e.rotation = (float)0.8; } else { e.rotation += 0.005f; } } if (e.getPos().X < pSprite.getPos().X) { if (e.getRotation() < -0.8) { e.rotation = (float)-0.8; } else { e.rotation -= 0.005f; } } #endregion #region Check for Enemy crashing into Player if (e.CollidesWith(pSprite)) { if (!e.getLanded() && !e.getCollided()) { pSprite.deHealth(); health--; explode.Play(); e.setCollided(); hit.Add(e); } } #endregion #region Check for Good Bullets hitting Enemies foreach (Bullet b in goodBullets) { if (b.live) { if (b.CollidesWith(e)) { e.deHealth(); if (e.getLives() <= 0) { e.setCollided(); hit.Add(e); explode.Play(); score += 25; } deadBullets.Add(b); } } } #endregion #region Check for Evil Bullets hitting Enemies foreach (Bullet b in evilBullets) { if (b.live) { if (b.CollidesWith(e)) { deadEvilBullets.Add(b); } #endregion #region Check for Evil Bullets hitting Player if (b.CollidesWith(pSprite)) { pSprite.deHealth(); health--; b.live = false; damage.Play(); } } } health = (int)MathHelper.Clamp(health, 0, 100); updateEvilBullets(e); } #endregion #region Update Healthbar Colour if (health < 100 && health > 75) { healthColor = Color.Green; } else if (health < 76 && health > 50) { healthColor = Color.Yellow; } else if (health < 51 && health > 25) { healthColor = Color.Orange; } else if (health < 26 && health > 0) { healthColor = Color.Red; } #endregion #region Check for Victory if (timeLeft == 0) { SManager.AddScreen(new Victory2(score), null); } #endregion #region Check for Loss if (pSprite.getLives() <= 0) { explode.Play(); SManager.AddScreen(new Loss2(), null); } #endregion #region Process Dead/Inactive Bullets + Enemies foreach (L2Enemy s in enemies) { if (s.getDie()) { inactive.Add(s); } } foreach (L2Enemy s in hit) { enemies.Remove(s); } foreach (L2Enemy s in inactive) { enemies.Remove(s); } foreach (Bullet b in deadBullets) { goodBullets.Remove(b); } } updateBullets(); #endregion }
void quitSelected(object sender, playerEvent e) { SManager.AddScreen(new backgroundScreen(), thisPlayer); SManager.AddScreen(new MainMenu(), thisPlayer); }
public override void Update(GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen) { base.Update(gameTime, otherScreenHasFocus, false); #region Pause Gradient if (coveredByOtherScreen) { pauseGradient = Math.Min(pauseGradient + 1f / 32, 1); } else { pauseGradient = Math.Max(pauseGradient - 1f / 32, 0); } #endregion #region Timer Updates if (active) { Random rand = new Random(); elapsedTime += gameTime.ElapsedGameTime.Milliseconds; counterTime += gameTime.ElapsedGameTime.Milliseconds; #endregion #region Spawn Snowballs if (elapsedTime > spawnTime) { elapsedTime -= spawnTime; sbs.Add(CreateSb()); spawnTime = rand.Next(300, 1500); } #endregion #region Countdown Timer if (counterTime > secondTime) { counterTime -= secondTime; if (countdown > 0) { countdown--; } else { countdown = 0; } } #endregion #region Check collision, land, vibrate, sound play foreach (L1Sprite s in sbs) { s.Update(gameTime, viewportRect); if (s != pSprite) { if (s.CollidesWith(pSprite) && !s.getLanded() && !s.getCollided()) { score++; ouch.Play(); s.setCollided(); hit.Add(s); } if (s.getLanded() && !s.getPlayed()) { impactInstance.Play(); inactive.Add(s); s.setPlayed(); } if (!s.getLanded()) { if (s.getPos().X < pSprite.getPos().X) { s.incVelX(); } if (s.getPos().X > pSprite.getPos().X) { s.decVelX(); } } } } #endregion #region Remove Dead Snowballs foreach (L1Sprite s in hit) { sbs.Remove(s); } #endregion #region Check for Death if (!death) { if (score >= 5) { lose.Play(); death = true; SManager.AddScreen(new Loss1(), null); } } #endregion #region Fade to Black if (countdown <= 4) { darkTime -= gameTime.ElapsedGameTime.Milliseconds; if (darkTime <= 0) { darkTime = 30; a -= 2; b -= 2; c -= 2; } } #endregion #region Check for Win if (countdown == 0 && score < 5) { SManager.AddScreen(new Victory1(), null); } #endregion } }
void PlayL2Selected(object sender, playerEvent e) { SManager.AddScreen(new Level2(), e.pIndex); }
void exit(object s, playerEvent e) { SManager.AddScreen(new MainMenu(), e.pIndex); }
void toLevel2(object s, playerEvent e) { SManager.AddScreen(new Level2(), e.pIndex); }