protected override void ExecuteInstructionSimple(InstructionSimple instruction) { JoueurEnCours.EtatJoueur.Angle += instruction.EtatFinal.Angle; JoueurEnCours.EtatJoueur.Angle = JoueurEnCours.EtatJoueur.Angle % 360.0; if (JoueurEnCours.EtatJoueur.Crayon != Etat.EtatCrayon.SAME) JoueurEnCours.EtatJoueur.Crayon = instruction.EtatFinal.Crayon; if (instruction.EtatFinal.Position != null) { Point position = instruction.EtatFinal.Position; Point imageRotation = position.Rotate(JoueurEnCours.EtatJoueur.Angle); Point positionJoueur = JoueurEnCours.EtatJoueur.Position; Point image = positionJoueur.Add(imageRotation); if (JoueurEnCours.EtatJoueur.Crayon == Etat.EtatCrayon.BAISSER) { IVecteur vect = FabriqueVecteur.getVecteur(niveauEnCours.Type, JoueurEnCours.EtatJoueur.Position, image); FormeEnCours.Add(vect); } JoueurEnCours.EtatJoueur.Position = image; } }
/// <summary> /// Execute une instruction simple /// </summary> /// <param name="instruction">Instruction a executer</param> protected abstract void ExecuteInstructionSimple(InstructionSimple instruction);