/// <summary> /// Met a jour l'état d'un objet /// </summary> /// <param name="gameInstance">Instance de la partie</param> /// <param name="deltaT">Temps écoulé depuis le dernier appel</param> public override void Update(Game gameInstance, double deltaT) { if (Game.random.Next(0, 100000 - (42 - gameInstance.gameObjects.OfType <Enemy>().Count()) * 1000) < 10) { Missil missil = new Missil(position + new Vecteur2D(sprite.Draw().Width / 2 - Properties.Resources.shoot1.Width / 2, 0), Teams.Enemy); gameInstance.AddNewGameObject(missil); } }
public void Shoot(Game gamInstance) { if (this.missile == null || !(this.missile.IsAlive())) { Missile newMissile = new Missile(positionX + (image.Width / 2), positionY + (image.Height / 2), 3); this.missile = newMissile; gamInstance.AddNewGameObject(this.missile); } }
/// <summary> /// Tire un missile /// </summary> /// <param name="gameInstance">L'instance de la partie</param> private void fireMissil(Game gameInstance) { if (remainingTimeBonus > 0 && activeBonus == BonusType.SUPER_MISSIL) { this.activeMissil = new Missil(position + new Vecteur2D(sprite.Draw().Width / 2 - Properties.Resources.shoot1.Width / 2, 0), Teams.Player, 3); } else { this.activeMissil = new Missil(position + new Vecteur2D(sprite.Draw().Width / 2 - Properties.Resources.shoot1.Width / 2, 0), Teams.Player); } if (remainingTimeBonus > 0 && activeBonus == BonusType.MULTIPLE_SHOT) { //On ajoute deux autres missiles gameInstance.AddNewGameObject(new Missil(position + new Vecteur2D(sprite.Draw().Width / 2 - Properties.Resources.shoot1.Width / 2 - 20f, 0), Teams.Player)); gameInstance.AddNewGameObject(new Missil(position + new Vecteur2D(sprite.Draw().Width / 2 - Properties.Resources.shoot1.Width / 2 + 20f, 0), Teams.Player)); } System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.laser); player.Play(); gameInstance.AddNewGameObject(this.activeMissil); }
/// <summary> /// Génère une rangée de bunkers /// </summary> /// <param name="instance">Instance de la partie</param> /// <param name="number">Nombre de bunker a générer</param> public static void generateBunkers(Game instance, int number) { Bitmap sprite = Properties.Resources.bunker; Bitmap playerSprite = Properties.Resources.ship1; Vecteur2D start = new Vecteur2D(0, instance.gameSize.Height - (playerSprite.Height * number + 50 + sprite.Height)); int offset = (instance.gameSize.Width - (number * sprite.Width)) / (number + 1); start += new Vecteur2D(offset, 0); for (int i = 0; i < number; i++) { instance.AddNewGameObject(new Bunker(new Vecteur2D(start))); start += new Vecteur2D(offset + sprite.Width, 0); } }
/// <summary> /// Fonction de tire du vaisseau /// </summary> /// <param name="gamInstance">Instance du jeu</param> public void Shoot(Game gamInstance) { if (this.missile == null || !(this.missile.IsAlive())) { Missile newMissile; if (Side == Side.Ally) { newMissile = new Missile((float)(Position.X + (Image.Width / 2)), (float)(Position.Y + (Image.Height / 2)), 10, SpaceInvaders.Properties.Resources.shoot1, Side) { upDirection = true }; } else { newMissile = new Missile((float)(Position.X + (Image.Width / 2)), (float)(Position.Y + (Image.Height / 2)), 5, SpaceInvaders.Properties.Resources.shoot2, Side); } missile = newMissile; gamInstance.AddNewGameObject(this.missile); } }