using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Drawing; namespace Bonhomme02 { class Marcher { Bonhomme bonhomme; IntPtr handle; int ySol; int resolution; int deltaXYmax = 10; int step; public Marcher() { } public Marcher(ref Bonhomme bonhomme, IntPtr handle, int ySol) { step = 0; this.bonhomme = bonhomme; this.handle = handle; this.ySol = ySol; resolution = 1; deltaXYmax = (int)Math.Round(3*bonhomme.jambe1.longueur.ABS/4); //Reset de tous les angle au cas ou bonhomme.Angle = Math.PI / 2; bonhomme.jambe1.SetAngle(Math.PI / 2, Math.PI / 2, 0); bonhomme.jambe2.Cacher(handle); bonhomme.jambe2.Visible = false; // On va d'abord le faire marcher sur une jambe bonhomme.bras.Visible = false; bonhomme.bras.Cacher(handle); if(bonhomme.jambe1.Bas.CSG.Y != ySol) { Graphics gr = Graphics.FromHwnd(handle); bonhomme.Cacher(handle); Point newCoo; int longeurTTBonhome = bonhomme.jambe1.Bas.CSG.Y - bonhomme.CIG.Y ;// de pied.csg à bonhome.cig newCoo = new Point(bonhomme.CIG.X, ySol - longeurTTBonhome); bonhomme.Coordonnee = newCoo; bonhomme.Afficher(handle); } } public void Avancer(int vitesse) { step = 0; int dejaDeplacer = 0; while(step<=32) { dejaDeplacer = 0; switch (step%5) { case 0: while (dejaDeplacer < deltaXYmax) //Descent corp { bonhomme.Cacher(handle); bonhomme.jambe1.Bouger(0, -resolution); bonhomme.Coordonnee = new Point(bonhomme.Coordonnee.X, bonhomme.Coordonnee.Y + resolution); bonhomme.Afficher(handle); dejaDeplacer += resolution; Thread.Sleep(vitesse); } break; case 1: while (dejaDeplacer < deltaXYmax)//avence corp pied fixe { bonhomme.Cacher(handle); bonhomme.jambe1.Bouger(-resolution, 0); bonhomme.Coordonnee = new Point(bonhomme.Coordonnee.X + resolution, bonhomme.Coordonnee.Y); bonhomme.Afficher(handle); dejaDeplacer += resolution; Thread.Sleep(vitesse); } break; case 2: while (dejaDeplacer < deltaXYmax) { bonhomme.Cacher(handle); bonhomme.jambe1.Bouger(-resolution, 0); bonhomme.Coordonnee = new Point(bonhomme.Coordonnee.X + resolution, bonhomme.Coordonnee.Y); bonhomme.Afficher(handle); dejaDeplacer += resolution; Thread.Sleep(vitesse); } bonhomme.Cacher(handle); bonhomme.jambe1.Bouger(0, -4); bonhomme.Afficher(handle); break; case 3: while (dejaDeplacer < (deltaXYmax*4)) { bonhomme.Cacher(handle); bonhomme.jambe1.Bouger(resolution, 0); //bonhomme.Coordonnee = new Point(bonhomme.Coordonnee.X + resolution, bonhomme.Coordonnee.Y); bonhomme.Afficher(handle); dejaDeplacer += resolution; Thread.Sleep(vitesse); } bonhomme.Cacher(handle); bonhomme.jambe1.Bouger(0, 4); bonhomme.Afficher(handle); break; case 4: while (dejaDeplacer < deltaXYmax*4) { bonhomme.Cacher(handle); bonhomme.jambe1.Bouger(-resolution, 0); bonhomme.Coordonnee = new Point(bonhomme.Coordonnee.X + resolution, bonhomme.Coordonnee.Y); bonhomme.Afficher(handle); dejaDeplacer += resolution; Thread.Sleep(vitesse); } bonhomme.Cacher(handle); bonhomme.jambe1.Bouger(0, -4); bonhomme.Afficher(handle); step+=3; break; } step++; } } } }