/// <summary> /// Déplace le serpent en supprimant l'élément de queue et en ajoutant un élément de tête. /// </summary> public void deplacerSerpent() { int indice_queue = corpsSerpent.Count - 1; PartieSerpent partieBougee = new PartieSerpent(corpsSerpent[0]); corpsSerpent.RemoveAt(indice_queue); corpsSerpent.Insert(0, partieBougee); switch (deplacement) { case 0: //droite corpsSerpent[0].deplacer(12, 0); break; case 1: //gauche corpsSerpent[0].deplacer(-12, 0); break; case 2: //haut corpsSerpent[0].deplacer(0, -12); //en principe c'est +12 MAIS je ne sais pas pourquoi, le haut et le bas semble inversé >< break; case 3: //bas corpsSerpent[0].deplacer(0, 12); break; } }
/// <summary> /// Constructeur par recopie /// </summary> /// <param name="original">La partie à copier</param> public PartieSerpent(PartieSerpent original) : this(original.X, original.Y) { }
/// <summary> /// Ajoute un élément en queue du serpent /// </summary> private void serpentGrandit() { PartieSerpent queue = new PartieSerpent(corpsSerpent[corpsSerpent.Count - 1]); corpsSerpent.Add(queue); }
/// <summary> /// Dessine un morceau du corps du serpent fourni en paramètre /// </summary> /// <param name="p">Le morceau de corps à dessiner</param> public void dessinerPartieSerpent(PartieSerpent p) { dessinerImage(p.Img, p.Coordonnees); }