// Permet de gerer l'explosion des vaisseaux private void timerExplosion_Tick(object sender, EventArgs e) { for (int i = 0; i < Enemis.Count; i++) // on balaie les enemis { if (Enemis.ElementAt(i).mort) // si un d'entre eux est mort, on le fait exploser { Enemis.ElementAt(i).explo += 1; // l'explosion se fait en 3 images, on itere pour faire passer les images de l'explosion dans l'ordre Enemis.ElementAt(i).Death(); // cela se fait dans l'objet enemi if (Enemis.ElementAt(i).explo == 3) { Enemis.ElementAt(i).Dispose(); //on supprime l'enemi Enemis.RemoveAt(i);//quand l'enemi est mort, on le supprime de la liste } } } if (!Joueur1.enVie&&Joueur1.explo<3) { // cette partie permet de faire exploser le joueur Joueur1.explo += 1; // de nouveau, cela se fait en 3 étapes. Joueur1.Mort(); } if (Joueur1.explo == 3) { // quand le joueur est mort Joueur1.Dispose(); // on le supprime FormGameOver frm = new FormGameOver(); // on crée la fenetre game over frm.SetScore(Joueur1.score);// on mets le score du joueur (il y a une méthode spécifique pour qu'on puisse utiliser la meme Form pour le multi) frm.Show();// on fait apparaitre la fenetre stop = true; // on arrete le thread du décor frm.BringToFront(); // on met la fenetre au premier plan, au dessus du menu qui réaparait lors de la fermeture de cette fenetre this.Close(); // on ferme la fenetre et donc le menu réaparait this.Dispose(); // par sécurité (ne sert a rien) } }
// comme pour le singlePlayer, si un des joueurs est mort, on le fait exploser private void timerExplosion_Tick(object sender, EventArgs e) { for (int i = 0; i < Enemis.Count; i++) { if (Enemis.ElementAt(i).mort) { Enemis.ElementAt(i).explo += 1; Enemis.ElementAt(i).Death(); if (Enemis.ElementAt(i).explo == 3) { Enemis.ElementAt(i).Dispose(); Enemis.RemoveAt(i); } } } if (!Joueur1.enVie&&Joueur1.explo<3) { Joueur1.explo += 1; Joueur1.Mort(); } if (Joueur1.explo == 3) { Joueur1.Dispose(); } if (!Joueur2.enVie && Joueur2.explo < 3) { Joueur2.explo += 1; Joueur2.Mort(); } if (Joueur2.explo == 3) { Joueur2.Dispose(); } if (!Joueur1.enVie && !Joueur2.enVie) // si les deux joueurs sont morts, on ouvre la fenetre game over. { FormGameOver frm = new FormGameOver(); frm.SetScoreMulti(Joueur1.score,Joueur2.score); frm.Show(); ok = false; frm.BringToFront(); this.Close(); // quand cette fenetre ce ferme, elle ferme automatiquement la FormReseau qui a son tour fait apparaitre la fentre du menu. } }
private void timerExplosion_Tick(object sender, EventArgs e) { for (int i = 0; i < Enemis.Count; i++) { if (Enemis.ElementAt(i).mort) { Enemis.ElementAt(i).explo += 1; Enemis.ElementAt(i).Death(); if (Enemis.ElementAt(i).explo == 3) { Enemis.ElementAt(i).Dispose(); Enemis.RemoveAt(i); } } } if (!Joueur1.enVie && Joueur1.explo < 3) { Joueur1.explo += 1; Joueur1.Mort(); } if (Joueur1.explo == 3) { Joueur1.Dispose(); } if (!Joueur2.enVie && Joueur2.explo < 3) { Joueur2.explo += 1; Joueur2.Mort(); } if (Joueur2.explo == 3) { Joueur2.Dispose(); } if (!Joueur1.enVie && !Joueur2.enVie) { FormGameOver frm = new FormGameOver(); frm.SetScoreMulti(Joueur1.score, Joueur2.score); frm.Show(); ok = false; frm.BringToFront(); this.Close(); } }