bonhomeExamJanvier/Bonhomme02/Marcher.cs

130 lines
5.2 KiB
C#
Raw Normal View History

2018-01-05 22:30:17 +01:00
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++;
}
}
}
}