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); }
public void Update() { restart.Update(); mainMenu.Update(); }
public void Update() { newGame.Update(); exit.Update(); }
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); }
/// <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); }