Пример #1
0
 //methods
 /// <summary>
 /// when the enemy runs into the player it takes damage
 /// </summary>
 /// <param name="enemy"></param>
 public override void ArmorAction(Enemies enemy)
 {
     enemy.Health -= 3;
 }
Пример #2
0
 public virtual void WeaponAction(Enemies attacked, GameTime gameTime)
 {
 }
Пример #3
0
 //overload for AmorAction() also overriden by child classes
 public virtual void ArmorAction(Enemies enemy)
 {
 }
Пример #4
0
 //methods
 public virtual void WeaponAction(Enemies attacked)
 {
 }
Пример #5
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            /*foreach (Enemies enemy in enemies)
             * {
             *  enemy.Update(graphics.GraphicsDevice, ship.realPosition());
             *  if (ship.rectanglebox().Intersects(enemy.enemyBox))
             *  {
             *      CurrentGameState = GameState.GameOver;
             *  }
             * }*/

            MouseState mouse = Mouse.GetState();

            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }
            switch (CurrentGameState)
            {
            case GameState.ShDoomed:
                if (bgWellcome.IsClicked() == true)
                {
                    CurrentGameState = GameState.MainMenu;
                }
                bgWellcome.Update(mouse);
                break;

            case GameState.MainMenu:
                if (btnPlay.IsClicked() == true)
                {
                    CurrentGameState = GameState.Playing;
                }
                btnMenu.Update(mouse);
                btnPlay.Update(mouse);
                break;

            case GameState.Playing:
                spawn += (float)gameTime.ElapsedGameTime.TotalSeconds;
                ship.Move(gameTime);
                for (int i = 0; i < enemies.Count; i++)
                {
                    Enemies enemy = enemies[i];
                    if (ship.KillEnemy(enemy))
                    {
                        enemy.lifenemy--;
                        if (enemy.lifenemy == 0)
                        {
                            enemies.Remove(enemy);
                            if (enemy.level == 1)
                            {
                                PlayerStatus.AddPoints(5);
                            }
                            else if (enemy.level == 2)
                            {
                                PlayerStatus.AddPoints(20);
                            }
                            else if (enemy.level == 3)
                            {
                                PlayerStatus.AddPoints(30);
                            }
                            else if (enemy.level == 4)
                            {
                                PlayerStatus.AddPoints(50);
                            }
                        }
                        i--;
                    }
                }
                for (int i = 0; i < boss.Count; i++)
                {
                    Boss bos = boss[i];
                    if (ship.KillBoss(bos))
                    {
                        bos.lifeboss--;
                        if (bos.lifeboss == 0)
                        {
                            boss.Remove(bos);
                            PlayerStatus.AddPoints(1000);
                        }
                        i--;
                    }
                }
                foreach (Boss bos in boss)
                {
                    bos.Update(graphics.GraphicsDevice, ship.realPosition());
                }



                foreach (Enemies enemy in enemies)
                {
                    enemy.Update(graphics.GraphicsDevice, ship.realPosition());
                    if (ship.rectanglebox().Intersects(enemy.enemyBox))
                    {
                        playerDead.Play();
                        PlayerStatus.RemoveLife();
                        for (int i = 0; i < enemies.Count; i++)
                        {
                            Enemies enemy1 = enemies[i];
                            if (ship.rectanglebox().Intersects(enemy1.enemyBox))
                            {
                                enemies.Remove(enemy1);
                            }
                        }
                        if (PlayerStatus.IsGameOver)
                        {
                            CurrentGameState = GameState.GameOver;
                        }
                        break;
                    }
                }

                foreach (Boss bos in boss)
                {
                    bos.Update(graphics.GraphicsDevice, ship.realPosition());
                    if (ship.rectanglebox().Intersects(bos.bossBox))
                    {
                        playerDead.Play();
                        PlayerStatus.RemoveLife();
                        for (int i = 0; i < boss.Count; i++)
                        {
                            Boss bos1 = boss[i];
                            boss.Remove(bos1);
                        }

                        if (PlayerStatus.IsGameOver)
                        {
                            CurrentGameState = GameState.GameOver;
                        }

                        int sec = 3;
                        while (sec > 0)
                        {
                            sec--;
                        }
                        break;
                    }
                }
                LoadEnemies();
                if (Input.WasKeyPressed(Keys.P))
                {
                    paused = !paused;
                }
                if (Input.WasKeyPressed(Keys.B))
                {
                    useBloom = !useBloom;
                }
                break;


            case GameState.GameOver:
                break;
            }
            base.Update(gameTime);
        }