예제 #1
0
        public virtual void drawParamMenu(SpriteBatch batch)
        {
            if (font == null)
            {
                font = Game1.cManager.Load <SpriteFont>("font");
            }
            if (widthUpButton == null)
            {
                widthUpButton = new Button(new Rectangle(Game1.graphics.PreferredBackBufferWidth - 192, Game1.graphics.PreferredBackBufferHeight - 50, 16, 16), delegate { size += new Vector2(16, 16); }, "gui/plus");
            }
            if (widthDownButton == null)
            {
                widthDownButton = new Button(new Rectangle(Game1.graphics.PreferredBackBufferWidth - 160, Game1.graphics.PreferredBackBufferHeight - 50, 16, 16), delegate { size -= new Vector2(16, 16); }, "gui/minus");
            }

            widthUpButton.Draw(batch);
            widthDownButton.Draw(batch);
            widthUpButton.Update();
            widthDownButton.Update();

            batch.DrawString(font, pos.ToString(), new Vector2(Game1.graphics.PreferredBackBufferWidth - 100, Game1.graphics.PreferredBackBufferHeight - 30), Color.Black);
            batch.DrawString(font, size.ToString(), new Vector2(Game1.graphics.PreferredBackBufferWidth - 200, Game1.graphics.PreferredBackBufferHeight - 30), Color.Black);
        }
예제 #2
0
 public void Update()
 {
     restart.Update();
     mainMenu.Update();
 }
예제 #3
0
 public void Update()
 {
     newGame.Update();
     exit.Update();
 }
예제 #4
0
        float spawn = 0; // För att få en timer för enemy spawn och sånt.
        protected override void Update(GameTime gameTime)
        {
            MouseState mouse = Mouse.GetState();

            if (CurrentGameState == GameState.MainMenu)
            {
                pause = true; // När spelet startas är det i MainMenu och är i pause lägge.
            }
            if (CurrentGameState == GameState.GameOver)
            {
                Exit();
            }

            //Menu
            switch (CurrentGameState)
            {
            case GameState.MainMenu:

                if (buttonplay.isclicked == true)
                {
                    CurrentGameState = GameState.Playing;                                   // Om button är klickad så blir GameState till playing.
                }
                buttonplay.Update(mouse);

                break;

            case GameState.Playing:

                pause = false;     // Medans GameState är i playing så är spelet inte i pause.
                if (Keyboard.GetState().IsKeyDown(Keys.Escape) || hero.hp == 0)
                {
                    CurrentGameState = GameState.GameOver;
                }
                break;

            case GameState.GameOver:
                WriteHighscore();
                break;
            }

            if (pause == false) // Om spelet inte är i pause så laddas allt i denna text upp.
            {
                //Enemy
                spawn += (float)gameTime.ElapsedGameTime.TotalSeconds; // Gör en timer för enemy.

                foreach (Enemy enemies in enemy)                       // För varje enemy så skrivs koden som är i enemy.Update.
                {
                    enemies.Update(graphics.GraphicsDevice);
                }

                LoadEnemies(); // Använder metoden som är i LoadEnemies.

                // IsTouchingLeft?
                foreach (Enemy enemies in enemy) // En kod som är som Intersect som kollar om enemy rörs på vänster sidan av hero.
                {
                    if (hero.rectangle.Right > enemies.rectangle.Left &&
                        hero.rectangle.Left < enemies.rectangle.Left &&
                        hero.rectangle.Bottom > enemies.rectangle.Top &&
                        hero.rectangle.Top < enemies.rectangle.Bottom)
                    {
                        enemies.hp--; // Enemy förlorar ett hp om den rörs.
                        hero.hp--;    // Hero förlorar ett hp om den rörs.
                    }
                }

                //Hero
                if (hero.position.X <= 0)
                {
                    hero.position.X = 1; // Gör så att hero inte kan gå utanför X = 0.
                }
                if (hero.position.X >= graphics.PreferredBackBufferWidth - hero.texture.Width)
                {
                    hero.position.X = graphics.PreferredBackBufferWidth - hero.texture.Width - 1; // Gör så att hero inte kan gå utanför Width på spel skärmen.
                }
                hero.Update(gameTime);                                                            // Använder hero.Update koden som skrevs i Hero.

                //Bullet
                if (Keyboard.GetState().IsKeyDown(Keys.Space) && pastkey.IsKeyUp(Keys.Space))
                {
                    Shoot();                   // Gör så att om space blev nertryckt och är uppe igen so används koden i metoden Shoot.
                }
                pastkey = Keyboard.GetState(); // För att se om en key är uppe igen.

                UpdateBullet();                // Använder koden i metoden UpdateBullet för hela spelet.

                foreach (Bullet bullets in bullet)
                {
                    bullets.Update();                                        // Använder koden som skrivs i Bullet.Update för alla bullets som görs.
                }
                foreach (Bullet bullets in bullet)                           // För varje bullet som görs u bullet listan.
                {
                    foreach (Enemy enemies in enemy)                         // För varje enemies som görs i listan enemy.
                    {
                        if (bullets.rectangle.Intersects(enemies.rectangle)) // Om bullet rör enemies rectangle så förlorar båda ett hp.
                        {
                            bullets.hp--;
                            enemies.hp--;
                        }
                    }
                }
            }

            base.Update(gameTime);
        }
예제 #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);
        }