diff --git a/Bonhomme02/BaseBJ.cs b/Bonhomme02/BaseBJ.cs
index b0311d5..7015b87 100644
--- a/Bonhomme02/BaseBJ.cs
+++ b/Bonhomme02/BaseBJ.cs
@@ -1,5 +1,5 @@
/*
- * Base des objets Bras et jambe
+ * Base des objets Bras et jambe
*/
using System;
@@ -34,9 +34,9 @@ namespace Bonhomme02
this.longueur = longueur;
this.Haut = this;
this.Millieux = new Peau(Hebergeur, ref this.Haut, longueur / 2, epaisseur, angle);
-
+
}
-
+
public new void Afficher(IntPtr handle)
{
if(base.Visible)
@@ -45,7 +45,7 @@ namespace Bonhomme02
Millieux.Afficher(handle);
Bas.Afficher(handle);
}
-
+
}
public new void Cacher(IntPtr handle)
{
@@ -53,6 +53,22 @@ namespace Bonhomme02
Millieux.Cacher(handle);
Bas.Cacher(handle);
}
+ public new void Afficher(Graphics gr)
+ {
+ if(base.Visible)
+ {
+ Haut.Afficher(gr);
+ Millieux.Afficher(gr);
+ Bas.Afficher(gr);
+ }
+
+ }
+ public new void Cacher(Graphics gr)
+ {
+ Haut.Cacher(gr);
+ Millieux.Cacher(gr);
+ Bas.Cacher(gr);
+ }
public double TrouverAngleHaut(Point pt)
{
Point ptOrigine = parent.Coordonnee + parent.longueur;
@@ -109,7 +125,7 @@ namespace Bonhomme02
{
Haut.Angle = TrouverAngleHaut(nouveauPtMillieux);
Millieux.Angle = TrouverAngleMillieux(nouveauPtBas);
- }
+ }
}
public void BougerXHaut(int x, ref Bonhomme bonhomme)
{
diff --git a/Bonhomme02/BaseDessin.cs b/Bonhomme02/BaseDessin.cs
index ab67f21..5730572 100644
--- a/Bonhomme02/BaseDessin.cs
+++ b/Bonhomme02/BaseDessin.cs
@@ -14,6 +14,7 @@ namespace Bonhomme02
private bool _Visible = true;
private PictureBox _Hebergeur;
+ public Color backGround = Color.Gray;
private Color _Fond = Color.Blue;
private Color _Crayon = Color.Black;
private Boolean remplir = true;
diff --git a/Bonhomme02/Bonhomme.cs b/Bonhomme02/Bonhomme.cs
index 008c294..ab9dbde 100644
--- a/Bonhomme02/Bonhomme.cs
+++ b/Bonhomme02/Bonhomme.cs
@@ -13,32 +13,36 @@ namespace Bonhomme02
public Tete tete;
public Jambe jambe1, jambe2;
public Bras bras;
+ public PictureBox conteneur;
public Bonhomme() : base()
{
}
- public Bonhomme(PictureBox hebergeur) : base( hebergeur)
+ public Bonhomme(ref PictureBox hebergeur) : base( hebergeur)
{
+ this.conteneur = hebergeur;
}
- public Bonhomme(PictureBox hebergeur, double lg, double ep, double angle) : base( hebergeur, lg, ep, angle)
+ public Bonhomme(ref PictureBox hebergeur, double lg, double ep, double angle) : base( hebergeur, lg, ep, angle)
{
-
+ this.conteneur = hebergeur;
}
- public Bonhomme(PictureBox hebergeur, int xy) : base( hebergeur, xy)
+ public Bonhomme(ref PictureBox hebergeur, int xy) : base( hebergeur, xy)
{
+ this.conteneur = hebergeur;
}
- public Bonhomme(PictureBox hebergeur, int x, int y, double lg, double ep, double angle) : base( hebergeur, x, y, lg, ep, angle)
+ public Bonhomme(ref PictureBox hebergeur, int x, int y, double lg, double ep, double angle) : base( hebergeur, x, y, lg, ep, angle)
{
+ this.conteneur = hebergeur;
Peau me = this;
jambe1 = new Jambe(hebergeur, ref me, lg, ep/4, Math.PI / 2);
jambe2 = new Jambe(hebergeur, ref me, lg, ep / 4, Math.PI / 2);
tete = new Tete(hebergeur, ref me, (int)(ep*3.5/4));
bras = new Bras(hebergeur, ref me, lg, ep/4, Math.PI / 2);
}
- public Bonhomme(PictureBox hebergeur, ref Peau parent, double lg, double ep, double angle) : base( hebergeur, ref parent, lg, ep, angle)
+ public Bonhomme(ref PictureBox hebergeur, ref Peau parent, double lg, double ep, double angle) : base( hebergeur, ref parent, lg, ep, angle)
{
-
+ this.conteneur = hebergeur;
}
public new void Afficher(IntPtr handle)
{
@@ -48,14 +52,29 @@ namespace Bonhomme02
jambe2.Afficher(handle);
bras.Afficher(handle);
}
-
- public new void Cacher(IntPtr handle)
+ public new void Afficher(Graphics gr)
{
- base.Cacher(handle);
- tete.Cacher(handle);
- jambe1.Cacher(handle);
- jambe2.Cacher(handle);
- bras.Cacher(handle);
+ base.Afficher(gr);
+ tete.Afficher(gr);
+ jambe1.Afficher(gr);
+ jambe2.Afficher(gr);
+ bras.Afficher(gr);
+ }
+ public void Afficher()
+ {
+ Afficher(conteneur.Handle);
+ }
+ public new void Cacher(Graphics gr)
+ {
+ base.Cacher(gr);
+ tete.Cacher(gr);
+ jambe1.Cacher(gr);
+ jambe2.Cacher(gr);
+ bras.Cacher(gr);
+ }
+ public void Cacher()
+ {
+ Cacher(conteneur.Handle);
}
public void InterevrtirJambe()
{
diff --git a/Bonhomme02/Bonhomme02.csproj b/Bonhomme02/Bonhomme02.csproj
index 34e5adf..72df1ea 100644
--- a/Bonhomme02/Bonhomme02.csproj
+++ b/Bonhomme02/Bonhomme02.csproj
@@ -102,5 +102,8 @@
+
+
+
\ No newline at end of file
diff --git a/Bonhomme02/Form1.Designer.cs b/Bonhomme02/Form1.Designer.cs
index bc2e551..1e4fd1e 100644
--- a/Bonhomme02/Form1.Designer.cs
+++ b/Bonhomme02/Form1.Designer.cs
@@ -36,12 +36,12 @@ namespace Bonhomme02
this.btnEffacer = new System.Windows.Forms.Button();
this.btnStopDeplacerCTick = new System.Windows.Forms.Button();
this.btnCreationCarrosse = new System.Windows.Forms.Button();
- this.pictureBox2 = new System.Windows.Forms.PictureBox();
- this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.NyanCatGif = new System.Windows.Forms.PictureBox();
+ this.Obstacle = new System.Windows.Forms.PictureBox();
this.Sol = new System.Windows.Forms.PictureBox();
this.TV = new System.Windows.Forms.PictureBox();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NyanCatGif)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Obstacle)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.Sol)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.TV)).BeginInit();
this.SuspendLayout();
@@ -82,25 +82,25 @@ namespace Bonhomme02
this.btnCreationCarrosse.UseVisualStyleBackColor = true;
this.btnCreationCarrosse.Click += new System.EventHandler(this.btnCreationCarrosse_Click);
//
- // pictureBox2
+ // NyanCatGif
//
- this.pictureBox2.BackColor = System.Drawing.Color.Gray;
- this.pictureBox2.Location = new System.Drawing.Point(995, 13);
- this.pictureBox2.Name = "pictureBox2";
- this.pictureBox2.Size = new System.Drawing.Size(154, 105);
- this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
- this.pictureBox2.TabIndex = 14;
- this.pictureBox2.TabStop = false;
+ this.NyanCatGif.BackColor = System.Drawing.Color.Black;
+ this.NyanCatGif.Location = new System.Drawing.Point(995, 13);
+ this.NyanCatGif.Name = "NyanCatGif";
+ this.NyanCatGif.Size = new System.Drawing.Size(154, 105);
+ this.NyanCatGif.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.NyanCatGif.TabIndex = 14;
+ this.NyanCatGif.TabStop = false;
//
- // pictureBox1
+ // Obstacle
//
- this.pictureBox1.BackColor = System.Drawing.Color.Silver;
- this.pictureBox1.Location = new System.Drawing.Point(750, 224);
- this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size(10, 192);
- this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
- this.pictureBox1.TabIndex = 13;
- this.pictureBox1.TabStop = false;
+ this.Obstacle.BackColor = System.Drawing.Color.Silver;
+ this.Obstacle.Location = new System.Drawing.Point(750, 224);
+ this.Obstacle.Name = "Obstacle";
+ this.Obstacle.Size = new System.Drawing.Size(10, 192);
+ this.Obstacle.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
+ this.Obstacle.TabIndex = 13;
+ this.Obstacle.TabStop = false;
//
// Sol
//
@@ -114,7 +114,7 @@ namespace Bonhomme02
//
// TV
//
- this.TV.BackColor = System.Drawing.Color.Gray;
+ this.TV.BackColor = System.Drawing.Color.Black;
this.TV.Location = new System.Drawing.Point(12, 13);
this.TV.Name = "TV";
this.TV.Size = new System.Drawing.Size(1137, 449);
@@ -126,19 +126,20 @@ namespace Bonhomme02
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1161, 538);
- this.Controls.Add(this.pictureBox2);
- this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.NyanCatGif);
+ this.Controls.Add(this.Obstacle);
this.Controls.Add(this.Sol);
this.Controls.Add(this.btnCreationCarrosse);
this.Controls.Add(this.btnEffacer);
this.Controls.Add(this.btnStopDeplacerCTick);
this.Controls.Add(this.TV);
+ this.DoubleBuffered = true;
this.Name = "Form1";
this.Text = "Dessins Animés";
this.Load += new System.EventHandler(this.Form1_Load);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.NyanCatGif)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.Obstacle)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.Sol)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.TV)).EndInit();
this.ResumeLayout(false);
@@ -154,8 +155,8 @@ namespace Bonhomme02
private System.Windows.Forms.Button btnStopDeplacerCTick;
private System.Windows.Forms.Button btnCreationCarrosse;
private System.Windows.Forms.PictureBox Sol;
- private System.Windows.Forms.PictureBox pictureBox1;
- private System.Windows.Forms.PictureBox pictureBox2;
+ private System.Windows.Forms.PictureBox Obstacle;
+ private System.Windows.Forms.PictureBox NyanCatGif;
}
}
diff --git a/Bonhomme02/Form1.cs b/Bonhomme02/Form1.cs
index b51b232..4a967c1 100644
--- a/Bonhomme02/Form1.cs
+++ b/Bonhomme02/Form1.cs
@@ -20,7 +20,7 @@ namespace Bonhomme02
private BufferedGraphics bufferG = null;
private Graphics g;
SoundPlayer player = new SoundPlayer();
- Stream str = global::Bonhomme02.Properties.Resources.NyanCatoriginal;
+ Stream str;
List tasks = new List();
public Form1()
{
@@ -40,10 +40,10 @@ namespace Bonhomme02
}
else
{
- bonhomme.Cacher(this.TV.Handle);
+ bonhomme.Cacher(g);
bonhomme.coordonnee = new Point(bonhomme.coordonnee.X + 3, bonhomme.coordonnee.Y + 0);
bonhomme.jambe1.BougerBas(+3, -3);
- bonhomme.Afficher(this.TV.Handle);
+ bonhomme.Afficher(g);
}
}
@@ -62,22 +62,23 @@ namespace Bonhomme02
private void btnCreationCarrosse_Click(object sender, EventArgs e)
{
- bonhomme = new Bonhomme(this.TV, 80, 80, 50, 20, Math.PI / 2);
+ bonhomme = new Bonhomme(ref this.TV, 80, 80, 50, 20, Math.PI / 2);
bonhomme.jambe1.Bas.Fond = bonhomme.jambe1.Millieux.Fond = bonhomme.jambe1.Haut.Fond = Color.Pink;
bonhomme.jambe2.Bas.Fond = bonhomme.jambe2.Millieux.Fond = bonhomme.jambe2.Haut.Fond = Color.DeepPink;
bonhomme.tete.Fond = Color.Pink;
- bonhomme.Afficher(this.TV.Handle);
- marche = new Marcher(ref bonhomme, this.TV.Handle, this.Sol.Location.Y-this.TV.Location.Y);
+ bonhomme.Afficher(g);
+ marche = new Marcher(ref bonhomme, bufferG, this.Sol.Location.Y-this.TV.Location.Y);
Thread.Sleep(1000);
if (tasks.Count == 0)
{
+ str = global::Bonhomme02.Properties.Resources.NyanCatoriginal;
player.Stream = str;
- this.pictureBox2.Image = global::Bonhomme02.Properties.Resources.tumblr_opsismTLqh1vghf22o1_400;
+ this.NyanCatGif.Image = global::Bonhomme02.Properties.Resources.tumblr_opsismTLqh1vghf22o1_400;
player.Play();
}
// https://msdn.microsoft.com/fr-be/Library/dd270696(v=vs.110).aspx
tasks.Add(Task.Factory.StartNew(() => {
- marche.Avancer(1, this.TV.Width);
+ marche.Saut(ref this.Obstacle, 1);
}));
var continuation = Task.WhenAll(tasks); //https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/chaining-tasks-by-using-continuation-tasks
Task continuationTask = continuation.ContinueWith((antecedent) => {
@@ -85,7 +86,10 @@ namespace Bonhomme02
if (tasks.Count == 0)
{
player.Stop();
- this.pictureBox2.Image = null;
+ str = str = global::Bonhomme02.Properties.Resources.Super_Mario_Bros_Win_Stage_Sound_Effect;
+ player.Stream = str;
+ player.Play();
+ this.NyanCatGif.Image = null;
}
});
}
diff --git a/Bonhomme02/Marcher.cs b/Bonhomme02/Marcher.cs
index 8704ca9..a3de880 100644
--- a/Bonhomme02/Marcher.cs
+++ b/Bonhomme02/Marcher.cs
@@ -5,17 +5,21 @@ using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Drawing;
+using System.Windows.Forms;
namespace Bonhomme02
{
class Marcher
{
Bonhomme bonhomme;
- IntPtr handle;
+ IntPtr? handle;
+ Graphics gr;
+ BufferedGraphics buff;
int ySol;
int resolution;
int deltaXYmax = 10;
int step, cooXMax = 0;
+ int vitesse;
public Marcher()
{
@@ -28,7 +32,7 @@ namespace Bonhomme02
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);
@@ -37,20 +41,58 @@ namespace Bonhomme02
if(bonhomme.jambe1.Bas.CSG.Y != ySol) // On positionne le bonhomme sur le sol
{
Graphics gr = Graphics.FromHwnd(handle);
+ if(handle == null){
+ bonhomme.Cacher(gr);
+ buff.Render();
+ }
+ else
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;
+ if(handle == null){
+ bonhomme.Afficher(gr);
+ buff.Render();
+ }
+ else
bonhomme.Afficher(handle);
}
}
- public void Avancer(int vitesse)
+ public Marcher(ref Bonhomme bonhomme, BufferedGraphics buff, int ySol)
{
+ handle = null;
step = 0;
+ this.gr = buff.Graphics;
+ this.buff = buff;
+ this.bonhomme = bonhomme;
+ this.handle = null;
+ 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.bras.Visible = false;
+ bonhomme.bras.Cacher(gr);
+ if(bonhomme.jambe1.Bas.CSG.Y != ySol) // On positionne le bonhomme sur le sol
+ {
+ bonhomme.Cacher(gr);
+ buff.Render();
+ 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(gr);
+ buff.Render();
+ }
+ }
+ public void Avancer()
+ {
double old = 1, neww = 0;
int dejaDeplacer = 0;
- while(step<=110 || bonhomme.X <= cooXMax)
+ while(/*step<=110 || */bonhomme.X <= cooXMax)
{
old = 1; neww = 0;
Console.WriteLine(step + "::" + step % 5);
@@ -60,22 +102,44 @@ namespace Bonhomme02
case 0:
while (dejaDeplacer < deltaXYmax) //Monte jambe 1
{
- bonhomme.Cacher(handle);
+ if(handle == null){
+ bonhomme.Cacher(gr);
+ }
+ else
+ bonhomme.Cacher(handle.Value);
bonhomme.jambe1.BougerBas(0, -resolution);
- bonhomme.Afficher(handle);
+ if(handle == null){
+ bonhomme.Afficher(gr);
+ }
+ else
+ bonhomme.Afficher(handle.Value);
dejaDeplacer += resolution;
+ if (handle == null)
+ buff.Render();
Thread.Sleep(vitesse);
}
-
+
break;
case 1:
while (dejaDeplacer < deltaXYmax)//avence corp + avancer jambe 1 jambe 2 fixe
{
- bonhomme.Cacher(handle);
+ if(handle == null){
+ bonhomme.Cacher(gr);
+
+ }
+ else
+ bonhomme.Cacher(handle.Value);
bonhomme.jambe2.BougerXHaut(resolution, ref bonhomme);
bonhomme.jambe1.BougerBas(resolution, 0);
- bonhomme.Afficher(handle);
+ if(handle == null){
+ bonhomme.Afficher(gr);
+
+ }
+ else
+ bonhomme.Afficher(handle.Value);
dejaDeplacer += resolution;
+ if (handle == null)
+ buff.Render();
Thread.Sleep(vitesse);
}
CollerAuSol(ref bonhomme.jambe2); //Voir issues #24
@@ -83,10 +147,22 @@ namespace Bonhomme02
case 2:
while (bonhomme.jambe1.Bas.CSG.Y < ySol && old != neww) //Descendre jambe 1 sur sol
{
- bonhomme.Cacher(handle);
+ if(handle == null){
+ bonhomme.Cacher(gr);
+
+ }
+ else
+ bonhomme.Cacher(handle.Value);
bonhomme.jambe1.BougerBas(0, resolution);
- bonhomme.Afficher(handle);
+ if(handle == null){
+ bonhomme.Afficher(gr);
+
+ }
+ else
+ bonhomme.Afficher(handle.Value);
dejaDeplacer += resolution;
+ if (handle == null)
+ buff.Render();
Thread.Sleep(vitesse);
if (neww != bonhomme.jambe1.Bas.CSG.Y)
{
@@ -98,9 +174,18 @@ namespace Bonhomme02
break;
case 3:
- while (dejaDeplacer < (deltaXYmax*2))//Monte&avance jambe 2,avance bonhome
+ if (bonhomme.jambe2.Bas.X > bonhomme.jambe1.Bas.X)
{
- bonhomme.Cacher(handle);
+ bonhomme.InterevrtirJambe();
+ }
+ while (dejaDeplacer < (deltaXYmax*2))//Monte&avance jambe 2,avance bonhome
+ {
+ if(handle == null){
+ bonhomme.Cacher(gr);
+
+ }
+ else
+ bonhomme.Cacher(handle.Value);
bonhomme.jambe1.BougerBas(-resolution, 0);
if(dejaDeplacer < deltaXYmax)
bonhomme.jambe2.BougerBas(resolution, -resolution);
@@ -114,29 +199,60 @@ namespace Bonhomme02
else
old = bonhomme.jambe2.Bas.CSG.Y;
}
-
+
else
bonhomme.jambe2.BougerBas(resolution, 0);
bonhomme.Coordonnee = new Point(bonhomme.Coordonnee.X + resolution, bonhomme.Coordonnee.Y);
- bonhomme.Afficher(handle);
+ if(handle == null){
+ bonhomme.Afficher(gr);
+
+ }
+ else
+ bonhomme.Afficher(handle.Value);
dejaDeplacer += resolution;
-
+ if (handle == null)
+ buff.Render();
Thread.Sleep(vitesse);
}
break;
case 4:
while (bonhomme.jambe2.Bas.CSG.Y < ySol - 1 && old != neww)//Descend jambe 2
{
- bonhomme.Cacher(handle);
+ if(handle == null){
+ bonhomme.Cacher(gr);
+
+ }
+ else
+ bonhomme.Cacher(handle.Value);
bonhomme.jambe2.BougerBas(0, resolution);
- bonhomme.Afficher(handle);
+ if(handle == null){
+ bonhomme.Afficher(gr);
+
+ }
+ else
+ bonhomme.Afficher(handle.Value);
dejaDeplacer += resolution;
+ if (handle == null)
+ buff.Render();
Thread.Sleep(vitesse);
}
- bonhomme.Cacher(handle);
+ if(handle == null){
+ bonhomme.Cacher(gr);
+
+ }
+ else
+ bonhomme.Cacher(handle.Value);
bonhomme.InterevrtirJambe();// On inverse les deux jambe, jambe1=jambe2 et jambe2=jambe1
- bonhomme.Afficher(handle);
- step+=3;
+ if(handle == null){
+ bonhomme.Afficher(gr);
+
+ }
+ else
+ bonhomme.Afficher(handle.Value);
+
+ if (handle == null)
+ buff.Render();
+ step +=3; // retour step 3
break;
}
step++;
@@ -145,21 +261,105 @@ namespace Bonhomme02
public void Avancer(int vitesse, int cooX)
{
this.cooXMax = cooX;
- Avancer(vitesse);
+ this.vitesse = vitesse;
+ this.step = 0;
+ Avancer();
+ }
+ public void Avancer(int vitesse, int cooX, int startStep)
+ {
+ this.cooXMax = cooX;
+ this.vitesse = vitesse;
+ this.step = startStep;
+ Avancer();
}
public void CollerAuSol(ref Jambe jambe)
{
if (jambe.Bas.CSG.Y != ySol) // On positionne le bonhomme sur le sol
{
- Graphics gr = Graphics.FromHwnd(handle);
- bonhomme.Cacher(handle);
+ //Graphics gr = Graphics.FromHwnd(handle.Value);
+ if(handle == null){
+ bonhomme.Cacher(gr);
+
+ }
+ else
+ bonhomme.Cacher(handle.Value);
Point newCoo;
int longeurTTBonhome = jambe.Bas.CSG.Y - bonhomme.CIG.Y;// de pied.csg à bonhome.cig
newCoo = new Point(bonhomme.Coordonnee.X, ySol - longeurTTBonhome);
bonhomme.Coordonnee = newCoo;
- bonhomme.Afficher(handle);
+ if(handle == null){
+ bonhomme.Afficher(gr);
+
+ }
+ else
+ bonhomme.Afficher(handle.Value);
+
+ if (handle == null)
+ buff.Render();
}
}
+ public void Saut(ref PictureBox osbtacle, int vitesse)
+ {
+ int marcherJusqa = osbtacle.Location.X - bonhomme.conteneur.Location.X - osbtacle.Height - osbtacle.Width - 4*deltaXYmax;
+ Avancer(vitesse, marcherJusqa);
+ while (bonhomme.Coordonnee.X < osbtacle.Location.X - bonhomme.conteneur.Location.X)//Monter
+ {
+ if(handle == null){
+ bonhomme.Cacher(gr);
+ }
+ else
+ bonhomme.Cacher(handle.Value);
+ bonhomme.X += 1;
+ bonhomme.Y -= 1;
+ if(bonhomme.jambe2.Bas.X < bonhomme.jambe1.Bas.X)
+ {
+ bonhomme.InterevrtirJambe();
+ }
+ if(bonhomme.jambe2.Bas.X> bonhomme.jambe1.Bas.X)
+ {
+ bonhomme.jambe2.BougerBas(-resolution, 0);
+ bonhomme.jambe1.BougerBas(resolution, 0);
+ }
+ if(handle == null){
+ bonhomme.Afficher(gr);
+
+ }
+ else
+ bonhomme.Afficher(handle.Value);
+ if (handle == null)
+ buff.Render();
+ Thread.Sleep(vitesse);
+ }
+ while (bonhomme.jambe1.Bas.CSG.Y < ySol)//descendre
+ {
+ if(handle == null){
+ bonhomme.Cacher(gr);
+ }
+ else
+ bonhomme.Cacher(handle.Value);
+ bonhomme.X += 1;
+ bonhomme.Y += 1;
+ if (bonhomme.jambe2.Bas.X < bonhomme.jambe1.Bas.X)
+ {
+ bonhomme.InterevrtirJambe();
+ }
+ if (Math.Abs(bonhomme.jambe2.Bas.X - bonhomme.jambe1.Bas.X )< 2*deltaXYmax)
+ {
+ bonhomme.jambe2.BougerBas(resolution, 0);
+ bonhomme.jambe1.BougerBas(-resolution, 0);
+ }
+ if(handle == null){
+ bonhomme.Afficher(gr);
+ }
+ else
+ bonhomme.Afficher(handle.Value);
+
+ if (handle == null)
+ buff.Render();
+ Thread.Sleep(vitesse);
+ }
+ Avancer(vitesse, bonhomme.conteneur.Location.X + bonhomme.conteneur.Width, 3);
+ }
}
-
+
}
diff --git a/Bonhomme02/Peau.cs b/Bonhomme02/Peau.cs
index 8ae4d8a..3f2ac22 100644
--- a/Bonhomme02/Peau.cs
+++ b/Bonhomme02/Peau.cs
@@ -61,7 +61,7 @@ namespace Bonhomme02
* | * \/ *
* | #*****************#
* | CSG CSD
- * |
+ * |
* \/
* y
*/
@@ -93,11 +93,19 @@ namespace Bonhomme02
public int X
{
get { return Coordonnee.X; }
+ set
+ {
+ Coordonnee = new Point(value, Coordonnee.Y);
+ }
}
public int Y
{
get { return Coordonnee.Y; }
+ set
+ {
+ Coordonnee = new Point(Coordonnee.X, value);
+ }
}
public double Angle
{
@@ -137,7 +145,7 @@ namespace Bonhomme02
if (base.Remplir )
{
gr.FillClosedCurve(new SolidBrush(base.Fond), l);
-
+
}
gr.DrawClosedCurve(new Pen(base.Crayon), l);
}
@@ -167,6 +175,45 @@ namespace Bonhomme02
}
}
+ public virtual void Afficher(Graphics gr)
+ {
+ if(base.Visible)
+ {
+ try
+ {
+ Point[] l = new Point[4] { CIG, CID, CSD, CSG };
+ if (base.Remplir )
+ {
+ gr.FillClosedCurve(new SolidBrush(base.Fond), l);
+
+ }
+ gr.DrawClosedCurve(new Pen(base.Crayon), l);
+ }
+ catch
+ {
+
+ }
+ }
+ }
+ public virtual void Cacher(Graphics gr)
+ {
+ try
+ {
+ if (base.Visible && 1 == 1)
+ {
+ Point[] l = new Point[4] { CIG, CID, CSD, CSG };
+ if (base.Remplir)
+ {
+ gr.FillClosedCurve(new SolidBrush(base.Hebergeur.BackColor), l);
+ }
+ gr.DrawClosedCurve(new Pen(base.Hebergeur.BackColor), l);
+ }
+ }
+ catch
+ {
+
+ }
+ }
#endregion
}
}
diff --git a/Bonhomme02/Properties/Resources.Designer.cs b/Bonhomme02/Properties/Resources.Designer.cs
index 3ebf5c5..9d3a715 100644
--- a/Bonhomme02/Properties/Resources.Designer.cs
+++ b/Bonhomme02/Properties/Resources.Designer.cs
@@ -79,6 +79,15 @@ namespace Bonhomme02.Properties {
}
}
+ ///
+ /// Recherche une ressource localisée de type System.IO.UnmanagedMemoryStream semblable à System.IO.MemoryStream.
+ ///
+ internal static System.IO.UnmanagedMemoryStream Super_Mario_Bros_Win_Stage_Sound_Effect {
+ get {
+ return ResourceManager.GetStream("Super_Mario_Bros_Win_Stage_Sound_Effect", resourceCulture);
+ }
+ }
+
///
/// Recherche une ressource localisée de type System.Drawing.Bitmap.
///
diff --git a/Bonhomme02/Properties/Resources.resx b/Bonhomme02/Properties/Resources.resx
index 26fb639..6793b0a 100644
--- a/Bonhomme02/Properties/Resources.resx
+++ b/Bonhomme02/Properties/Resources.resx
@@ -124,6 +124,9 @@
..\Resources\NyanCatoriginal.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ ..\Resources\Super Mario Bros Win Stage Sound Effect.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
..\Resources\tumblr_opsismTLqh1vghf22o1_400.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
diff --git a/Bonhomme02/Tete.cs b/Bonhomme02/Tete.cs
index 41d80b9..64e12d6 100644
--- a/Bonhomme02/Tete.cs
+++ b/Bonhomme02/Tete.cs
@@ -51,6 +51,32 @@ namespace Bonhomme02
gr.DrawEllipse(new Pen(Brushes.Black), posi.X, posi.Y, rayon * 2, rayon * 2);
}
}
+ public void Cacher(Graphics gr)
+ {
+ Point posi = new Point(corp.coordonnee.X - rayon, corp.coordonnee.Y - rayon * 2);
+ if (base.Visible)
+ {
+ if (base.Remplir)
+ {
+ gr.FillEllipse(new SolidBrush(base.Hebergeur.BackColor), posi.X, posi.Y, rayon * 2, rayon * 2);
+ }
+ gr.DrawEllipse(new Pen(base.Hebergeur.BackColor), posi.X, posi.Y, rayon * 2, rayon * 2);
+ }
+ }
+ public void Afficher(Graphics gr)
+ {
+
+ if (base.Visible)
+ {
+
+ Point posi = new Point(corp.coordonnee.X - rayon, corp.coordonnee.Y - rayon * 2);
+ if (base.Remplir)
+ {
+ gr.FillEllipse(new SolidBrush(base.Fond), posi.X, posi.Y, rayon * 2, rayon * 2);
+ }
+ gr.DrawEllipse(new Pen(Brushes.Black), posi.X, posi.Y, rayon * 2, rayon * 2);
+ }
+ }
}
}