diff --git a/Bonhomme02/Marcher.cs b/Bonhomme02/Marcher.cs new file mode 100644 index 0000000..efac7aa --- /dev/null +++ b/Bonhomme02/Marcher.cs @@ -0,0 +1,129 @@ +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++; + } + } + } +} diff --git a/Bonhomme02/Resources/moon.jpg b/Bonhomme02/Resources/moon.jpg new file mode 100644 index 0000000..391b18c Binary files /dev/null and b/Bonhomme02/Resources/moon.jpg differ