Beispiel #1
0
        protected override void ExecuteInstructionSimple(InstructionSimple instruction)
        {
            JoueurEnCours.EtatJoueur.Angle += instruction.EtatFinal.Angle;
            JoueurEnCours.EtatJoueur.Angle  = JoueurEnCours.EtatJoueur.Angle % 360.0;
            if (instruction.EtatFinal.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;
            }
        }
Beispiel #2
0
 /// <summary>
 /// Execute toutes les instructions et à la fin
 /// renvoi un event avec l'état initial du joueur et l'état final
 /// </summary>
 public override void ExecuterProgramme()
 {
     FormeEnCours.Clear();
     ExecuteInstructions(JoueurEnCours.Intructions);
 }