Example #1
0
        public override void HandleInput(inputState input)
        {
            KeyboardState keyboardState = input.currentKeyboardState;
            GamePadState  gamePadState  = input.currentGamePadState;

            if (input.isPause(thisPlayer))
            {
                SManager.AddScreen(new PauseMenu(), thisPlayer);
            }
        }
Example #2
0
        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;
                }
            }
        }
Example #3
0
        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
        }
Example #4
0
 void quitSelected(object sender, playerEvent e)
 {
     SManager.AddScreen(new backgroundScreen(), thisPlayer);
     SManager.AddScreen(new MainMenu(), thisPlayer);
 }
Example #5
0
        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
            }
        }
Example #6
0
 void PlayL2Selected(object sender, playerEvent e)
 {
     SManager.AddScreen(new Level2(), e.pIndex);
 }
Example #7
0
 void exit(object s, playerEvent e)
 {
     SManager.AddScreen(new MainMenu(), e.pIndex);
 }
Example #8
0
 void toLevel2(object s, playerEvent e)
 {
     SManager.AddScreen(new Level2(), e.pIndex);
 }