public override void Update(GameTime gameTime) { if (GestionExterne.numeroPerso == 0) { Joueur.Update(gameTime, Zombies, ZombiesCR, ZombiesF, BossZombies, BossZombiesCR, BossZombiesF, Obj, Hud); } else if (GestionExterne.numeroPerso == 1) { Joueur2.Update(Obj2); } else { Joueur3.Update(Obj2); } //Song MusicPlayer MP.Update(gameTime); ////Apparition des Zombies #region Apparition if (EV.compteurZombie < EV.NbEnnemieParVagues[EV.numeroVague]) { TimerApparition += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition > EV.vitesseApparition) { Zombies.Add(new Zombie(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition = 0; EV.compteurZombie++; } } if (EV.compteurZombieCR < EV.NbEnnemieCRParVagues[EV.numeroVague]) { TimerApparition2 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition2 > EV.vitesseApparition) { ZombiesCR.Add(new ZombieCR(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition2 = 0; EV.compteurZombieCR++; } } if (EV.compteurZombieF < EV.NbEnnemieFParVagues[EV.numeroVague]) { TimerApparition3 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition3 > EV.vitesseApparition) { ZombiesF.Add(new ZombieF(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition3 = 0; EV.compteurZombieF++; } } if (EV.compteurBossZombie < EV.NbEnnemieBossZParVagues[EV.numeroVague]) { TimerApparition4 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition4 > EV.vitesseApparition) { BossZombies.Add(new BossZombie(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition4 = 0; EV.compteurBossZombie++; } } if (EV.compteurBossZombieCR < EV.NbEnnemieBossCRParVagues[EV.numeroVague]) { TimerApparition5 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition5 > EV.vitesseApparition) { BossZombiesCR.Add(new BossZombieCR(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition5 = 0; EV.compteurBossZombieCR++; } } if (EV.compteurBossZombieF < EV.NbEnnemieBossFParVagues[EV.numeroVague]) { TimerApparition6 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition6 > EV.vitesseApparition) { BossZombiesF.Add(new BossZombieF(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition6 = 0; EV.compteurBossZombieF++; } } #endregion //Apparition des Zombies #region Apparition if (EV.compteurZombie < EV.NbEnnemieParVagues[EV.numeroVague]) { TimerApparition += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition > EV.vitesseApparition) { Zombies.Add(new Zombie(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition = 0; EV.compteurZombie++; } } if (EV.compteurZombieCR < EV.NbEnnemieCRParVagues[EV.numeroVague]) { TimerApparition2 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition2 > EV.vitesseApparition) { ZombiesCR.Add(new ZombieCR(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition2 = 0; EV.compteurZombieCR++; } } if (EV.compteurZombieF < EV.NbEnnemieFParVagues[EV.numeroVague]) { TimerApparition3 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition3 > EV.vitesseApparition) { ZombiesF.Add(new ZombieF(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition3 = 0; EV.compteurZombieF++; } } if (EV.compteurBossZombie < EV.NbEnnemieBossZParVagues[EV.numeroVague]) { TimerApparition4 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition4 > EV.vitesseApparition) { BossZombies.Add(new BossZombie(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition4 = 0; EV.compteurBossZombie++; } } if (EV.compteurBossZombieCR < EV.NbEnnemieBossCRParVagues[EV.numeroVague]) { TimerApparition5 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition5 > EV.vitesseApparition) { BossZombiesCR.Add(new BossZombieCR(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition5 = 0; EV.compteurBossZombieCR++; } } if (EV.compteurBossZombieF < EV.NbEnnemieBossFParVagues[EV.numeroVague]) { TimerApparition6 += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TimerApparition6 > EV.vitesseApparition) { BossZombiesF.Add(new BossZombieF(ZombiesAppartition[rApparition.Next(ZombiesAppartition.Length)])); TimerApparition6 = 0; EV.compteurBossZombieF++; } } #endregion //Update des Zombies #region Zombie Update for (int Z = 0; Z < Zombies.Count; Z++) { if (GestionExterne.numeroPerso == 0) { Zombies[Z].Update(Joueur, Obj); } else if (GestionExterne.numeroPerso == 1) { Zombies[Z].Update(Joueur2, Obj); } else { Zombies[Z].Update(Joueur3, Obj); } if (Zombies[Z].remove) { Hud.argent += Zombies[Z].argent; Zombies.RemoveAt(Z); EV.nbEnnemiRestant--; } else if (Zombies[Z].attack && !Zombies[Z].attackfinished) { EV.nbEnnemiRestant--; Zombies[Z].attackfinished = true; } } #endregion //Update des ZombiesCR #region ZombieCR Update for (int Z = 0; Z < ZombiesCR.Count; Z++) { if (GestionExterne.numeroPerso == 0) { ZombiesCR[Z].Update(Joueur, Obj); } else if (GestionExterne.numeroPerso == 1) { ZombiesCR[Z].Update(Joueur2, Obj); } else { ZombiesCR[Z].Update(Joueur3, Obj); } if (ZombiesCR[Z].remove) { Hud.argent += ZombiesCR[Z].argent; ZombiesCR.RemoveAt(Z); EV.nbEnnemiRestant--; } else if (ZombiesCR[Z].attack && !ZombiesCR[Z].attackfinished) { EV.nbEnnemiRestant--; ZombiesCR[Z].attackfinished = true; } } #endregion //Update des ZombiesCR #region ZombieF Update for (int Z = 0; Z < ZombiesF.Count; Z++) { if (GestionExterne.numeroPerso == 0) { ZombiesF[Z].Update(Joueur, Obj); } else if (GestionExterne.numeroPerso == 1) { ZombiesF[Z].Update(Joueur2, Obj); } else { ZombiesF[Z].Update(Joueur3, Obj); } if (ZombiesF[Z].remove) { Hud.argent += ZombiesF[Z].argent; ZombiesF.RemoveAt(Z); EV.nbEnnemiRestant--; } else if (ZombiesF[Z].attack && !ZombiesF[Z].attackfinished) { EV.nbEnnemiRestant--; ZombiesF[Z].attackfinished = true; } } #endregion //Update des BossZombies #region BossZombie Update for (int Z = 0; Z < BossZombies.Count; Z++) { if (GestionExterne.numeroPerso == 0) { BossZombies[Z].Update(Joueur, Obj); } else if (GestionExterne.numeroPerso == 1) { BossZombies[Z].Update(Joueur2, Obj); } else { BossZombies[Z].Update(Joueur3, Obj); } if (BossZombies[Z].remove) { Hud.argent += BossZombies[Z].argent; BossZombies.RemoveAt(Z); EV.nbEnnemiRestant--; } else if (BossZombies[Z].attack && !BossZombies[Z].attackfinished) { EV.nbEnnemiRestant--; BossZombies[Z].attackfinished = true; } } #endregion //Update des BossZombiesCR #region BossZombieCR Update for (int Z = 0; Z < BossZombiesCR.Count; Z++) { if (GestionExterne.numeroPerso == 0) { BossZombiesCR[Z].Update(Joueur, Obj); } else if (GestionExterne.numeroPerso == 1) { BossZombiesCR[Z].Update(Joueur2, Obj); } else { BossZombiesCR[Z].Update(Joueur3, Obj); } if (BossZombiesCR[Z].remove) { Hud.argent += BossZombiesCR[Z].argent; BossZombiesCR.RemoveAt(Z); EV.nbEnnemiRestant--; } else if (BossZombiesCR[Z].attack && !BossZombiesCR[Z].attackfinished) { EV.nbEnnemiRestant--; BossZombiesCR[Z].attackfinished = true; } } #endregion //Update des BossZombiesF #region BossZombieF Update for (int Z = 0; Z < BossZombiesF.Count; Z++) { if (GestionExterne.numeroPerso == 0) { BossZombiesF[Z].Update(Joueur, Obj); } else if (GestionExterne.numeroPerso == 1) { BossZombiesF[Z].Update(Joueur2, Obj); } else { BossZombiesF[Z].Update(Joueur3, Obj); } if (BossZombiesF[Z].remove) { Hud.argent += BossZombiesF[Z].argent; BossZombiesF.RemoveAt(Z); EV.nbEnnemiRestant--; } else if (BossZombiesF[Z].attack && !BossZombiesF[Z].attackfinished) { EV.nbEnnemiRestant--; BossZombiesF[Z].attackfinished = true; } } #endregion //Limite Caméra #region Camera if (GestionExterne.numeroPerso == 0) { ///X et Y if (Joueur.position.X < 400 && Joueur.position.Y < 255) { camera.Update(new Vector2(400, 255)); } else if (Joueur.position.X < 400 && Joueur.position.Y > 1000) { camera.Update(new Vector2(400, 1000)); } else if (Joueur.position.X > 1500 && Joueur.position.Y < 255) { camera.Update(new Vector2(1500, 255)); } else if (Joueur.position.X > 1500 && Joueur.position.Y > 1000) { camera.Update(new Vector2(1500, 1000)); } //X else if (Joueur.position.X < 400) { camera.Update(new Vector2(400, Joueur.position.Y)); } else if (Joueur.position.X > 1500) { camera.Update(new Vector2(1500, Joueur.position.Y)); } //Y else if (Joueur.position.Y < 255) { camera.Update(new Vector2(Joueur.position.X, 255)); } else if (Joueur.position.Y > 1000) { camera.Update(new Vector2(Joueur.position.X, 1000)); } else { camera.Update(new Vector2(Joueur.position.X, Joueur.position.Y)); } } else if (GestionExterne.numeroPerso == 1) { ///X et Y if (Joueur2.position.X < 400 && Joueur2.position.Y < 255) { camera.Update(new Vector2(400, 255)); } else if (Joueur2.position.X < 400 && Joueur2.position.Y > 1000) { camera.Update(new Vector2(400, 1000)); } else if (Joueur2.position.X > 1500 && Joueur2.position.Y < 255) { camera.Update(new Vector2(1500, 255)); } else if (Joueur2.position.X > 1500 && Joueur2.position.Y > 1000) { camera.Update(new Vector2(1500, 1000)); } //X else if (Joueur2.position.X < 400) { camera.Update(new Vector2(400, Joueur2.position.Y)); } else if (Joueur2.position.X > 1500) { camera.Update(new Vector2(1500, Joueur2.position.Y)); } //Y else if (Joueur2.position.Y < 255) { camera.Update(new Vector2(Joueur2.position.X, 255)); } else if (Joueur2.position.Y > 1000) { camera.Update(new Vector2(Joueur2.position.X, 1000)); } else { camera.Update(new Vector2(Joueur2.position.X, Joueur2.position.Y)); } } else { ///X et Y if (Joueur3.position.X < 400 && Joueur3.position.Y < 255) { camera.Update(new Vector2(400, 255)); } else if (Joueur3.position.X < 400 && Joueur3.position.Y > 1000) { camera.Update(new Vector2(400, 1000)); } else if (Joueur3.position.X > 1500 && Joueur3.position.Y < 255) { camera.Update(new Vector2(1500, 255)); } else if (Joueur3.position.X > 1500 && Joueur3.position.Y > 1000) { camera.Update(new Vector2(1500, 1000)); } //X else if (Joueur3.position.X < 400) { camera.Update(new Vector2(400, Joueur3.position.Y)); } else if (Joueur3.position.X > 1500) { camera.Update(new Vector2(1500, Joueur3.position.Y)); } //Y else if (Joueur3.position.Y < 255) { camera.Update(new Vector2(Joueur3.position.X, 255)); } else if (Joueur3.position.Y > 1000) { camera.Update(new Vector2(Joueur3.position.X, 1000)); } else { camera.Update(new Vector2(Joueur3.position.X, Joueur3.position.Y)); } } #endregion //update du HUD if (GestionExterne.numeroPerso == 0) { Hud.Update(new Vector2(camera.X, camera.Y), Joueur); } else if (GestionExterne.numeroPerso == 1) { Hud.Update(new Vector2(camera.X, camera.Y), Joueur2); } else { Hud.Update(new Vector2(camera.X, camera.Y), Joueur3); } GestionExterne.argent = Hud.argent; GestionExterne.nbBalleGun = Hud.balle; GestionExterne.nbFleche = Hud.fleche; GestionExterne.nbBalleShotgun = Hud.balleShotgun; GestionExterne.nbLaser = Hud.laser; //Update ENNEMI VAGUE EV.Update(new Vector2(camera.X, camera.Y)); //Limite Joueur #region Modification de la position Joueur if (GestionExterne.numeroPerso == 0) { //En X if (Joueur.position.X < 235) { Joueur.position = new Vector2(235, Joueur.position.Y); } else if (Joueur.position.X > 1685) { Joueur.position = new Vector2(1685, Joueur.position.Y); } ////En Y if (Joueur.position.Y < 70) { Joueur.position = new Vector2(Joueur.position.X, 70); } else if (Joueur.position.Y > 1250) { Joueur.position = new Vector2(Joueur.position.X, 1250); } } else if (GestionExterne.numeroPerso == 1) { //En X if (Joueur2.position.X < 235) { Joueur2.position = new Vector2(235, Joueur2.position.Y); } else if (Joueur2.position.X > 1685) { Joueur2.position = new Vector2(1685, Joueur2.position.Y); } ////En Y if (Joueur2.position.Y < 70) { Joueur2.position = new Vector2(Joueur2.position.X, 70); } else if (Joueur2.position.Y > 1250) { Joueur2.position = new Vector2(Joueur2.position.X, 1250); } } else { //En X if (Joueur3.position.X < 235) { Joueur3.position = new Vector2(235, Joueur3.position.Y); } else if (Joueur3.position.X > 1685) { Joueur3.position = new Vector2(1685, Joueur3.position.Y); } ////En Y if (Joueur3.position.Y < 70) { Joueur3.position = new Vector2(Joueur3.position.X, 70); } else if (Joueur3.position.Y > 1250) { Joueur3.position = new Vector2(Joueur3.position.X, 1250); } } #endregion //Changement darme #region Switch d'arme if (GestionExterne.numeroPerso == 0) { if (KeyboardHelper.KeyPressed(Keys.L)) { if (GestionExterne.haveRayGun) { if (Joueur.numArmement == 0) { Joueur.Load(1); } else if (Joueur.numArmement == 1) { Joueur.Load(2); } else if (Joueur.numArmement == 2) { Joueur.Load(3); } else if (Joueur.numArmement == 3) { Joueur.Load(4); } else { Joueur.Load(0); } } else if (GestionExterne.haveScie) { if (Joueur.numArmement == 0) { Joueur.Load(1); } else if (Joueur.numArmement == 1) { Joueur.Load(2); } else if (Joueur.numArmement == 2) { Joueur.Load(3); } else { Joueur.Load(0); } } else if (GestionExterne.haveShotGun) { if (Joueur.numArmement == 0) { Joueur.Load(1); } else if (Joueur.numArmement == 1) { Joueur.Load(2); } else if (Joueur.numArmement == 2) { Joueur.Load(0); } } else { if (Joueur.numArmement == 0) { Joueur.Load(1); } else { Joueur.Load(0); } } } } #endregion //Retour au menu if (KeyboardHelper.KeyPressed(Keys.Back)) { RemoveScreen(this); AddScreen(new cMainMenu(serviceProvider, GraphicsDeviceManager)); } //Si Joueur Meurt retour au menu if (GestionExterne.numeroPerso == 0) { if (Joueur.vie.tuer) { RemoveScreen(this); AddScreen(new cMainMenu(serviceProvider, GraphicsDeviceManager)); } } else if (GestionExterne.numeroPerso == 1) { if (Joueur2.vie.tuer) { RemoveScreen(this); AddScreen(new cMainMenu(serviceProvider, GraphicsDeviceManager)); } } else { if (Joueur3.vie.tuer) { RemoveScreen(this); AddScreen(new cMainMenu(serviceProvider, GraphicsDeviceManager)); } } }
public override void Update(GameTime gameTime) { FirePlayer.PlayAnimation(Fire); if (TutoOn) { #region Tuto Actif Player.Update(gameTime, Zombies, null, null, null, null, null, null, null); //Changement darme #region Switch d'arme if (KeyboardHelper.KeyPressed(Keys.L)) { if (GestionExterne.haveRayGun) { if (Player.numArmement == 0) { Player.Load(1); } else if (Player.numArmement == 1) { Player.Load(2); } else if (Player.numArmement == 2) { Player.Load(3); } else if (Player.numArmement == 3) { Player.Load(4); } else { Player.Load(0); } } else if (GestionExterne.haveScie) { if (Player.numArmement == 0) { Player.Load(1); } else if (Player.numArmement == 1) { Player.Load(2); } else if (Player.numArmement == 2) { Player.Load(3); } else { Player.Load(0); } } else if (GestionExterne.haveShotGun) { if (Player.numArmement == 0) { Player.Load(1); } else if (Player.numArmement == 1) { Player.Load(2); } else if (Player.numArmement == 2) { Player.Load(0); } } else { if (Player.numArmement == 0) { Player.Load(1); } else { Player.Load(0); } } } #endregion #region Zombie Update for (int Z = 0; Z < Zombies.Count; Z++) { Zombies[Z].Update(Player, null); if (Zombies[Z].remove) { Zombies.RemoveAt(Z); } } #endregion //Couleur du feu ColorF = Color.LightGreen; //Retour au menu if (KeyboardHelper.KeyPressed(Keys.Back)) { TutoOn = false; ColorF = Color.White; } //Mettre plus de zombies if (KeyboardHelper.KeyPressed(Keys.Z)) { #region Rajout de zombie // Si la premiere es deja la if ((int)(Zombies.Count % 2) == 0) { Zombies.Add(new Zombie(new Vector2(215, 400))); Zombies.Add(new Zombie(new Vector2(235, 400))); Zombies.Add(new Zombie(new Vector2(265, 400))); } else { Zombies.Add(new Zombie(new Vector2(255, 300))); Zombies.Add(new Zombie(new Vector2(235, 360))); Zombies.Add(new Zombie(new Vector2(265, 240))); } #endregion } #endregion } else { #region TutoOff if (!inMagasin) { //Déplacement de l'animation du feu (selection des options entre jouer magasin et tutorial) #region Position du feu if (KeyboardHelper.KeyPressed(Keys.Down) || KeyboardHelper.KeyPressed(Keys.S)) { if (PositionFeu == new Vector2(440, 125)) { PositionFeu = new Vector2(440, 225); } else if (PositionFeu == new Vector2(440, 225) && !ChoixVague) { PositionFeu = new Vector2(440, 325); } else { PositionFeu = new Vector2(440, 125); } } if (KeyboardHelper.KeyPressed(Keys.Up) || KeyboardHelper.KeyPressed(Keys.W)) { if (PositionFeu == new Vector2(440, 125) && !ChoixVague) { PositionFeu = new Vector2(440, 325); } else if (PositionFeu == new Vector2(440, 225)) { PositionFeu = new Vector2(440, 125); } else { PositionFeu = new Vector2(440, 225); } } #endregion //Selection de L'option #region Selection if (KeyboardHelper.KeyPressed(Keys.Enter)) { if (PositionFeu == new Vector2(440, 125)) { if (ChoixVague) { RemoveScreen(this); if (GestionExterne.numMap == 1) { AddScreen(new cNiveau2(serviceProvider, GraphicsDeviceManager)); } else if (GestionExterne.numMap == 0) { AddScreen(new cNiveau1(serviceProvider, GraphicsDeviceManager)); } } ChoixVague = true; ColorF = Color.LightGreen; } else if (PositionFeu == new Vector2(440, 325)) { TutoOn = true; } else if (PositionFeu == new Vector2(440, 225)) { if (!ChoixVague) { inMagasin = true; } else { GestionExterne.numeroVague = 0; RemoveScreen(this); AddScreen(new cNiveau1(serviceProvider, GraphicsDeviceManager)); } } } #endregion } else { Magasin.Update(); } if (KeyboardHelper.KeyPressed(Keys.Back)) { ColorF = Color.White; inMagasin = false; ChoixVague = false; } #endregion } }