Bonjour à tous,
J'ai codé un petit bout de code qui dessine à l'ecran un rectangle et le fait bouger. le probleme c'est que la mémoire aloué à mon application ne fait qu'augmenter et je n'arrive pas à resoudre le probleme. pouvez vous m'aider?
voila le petit bout de code :
pctJeux etant une picturebox
private BufferedGraphics o_buffer;
private Int32 i_X = 0;
private Int32 i_Y = 400;
private Thread o_jeu;
public Form1()
{ InitializeComponent();
o_buffer = BufferedGraphicsManager.Current.Allocate(pctJeux.CreateGraphics(), pctJeux.DisplayRectangle);
o_buffer.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
o_jeu = new Thread(new ThreadStart(Jouer));
o_jeu.Priority = ThreadPriority.Normal;
o_jeu.Start();
}
private void Jouer()
{ Graphics g = null;
while(Thread.CurrentThread.IsAlive){ g = o_buffer.Graphics;
g.Clear(Color.Black);
g.DrawRectangle(new Pen(Brushes.Red, 10), i_X, i_Y, 100, 10);
o_buffer.Render();
}
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{ if (e.KeyData == Keys.Right)
i_X += 10;
else if (e.KeyData == Keys.Left)
i_X -= 10;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ o_jeu.Abort();
o_buffer.Dispose();
}
merci de voter aide
