C# Duvarlara Çarpıp Dönen Top Graphic Sınıfı,C# Seken Top uygulama örneği
Graphics g; // Grafik nesnesi oluşturduk
Brush b = Brushes.Firebrick; // Fırça oluşturduk
Rectangle r = new Rectangle(10,10,40,40); // Rectangle yani karemizi oluşturduk ama yuvarlak gözükecek
int yatay = 10; // Yatay
int dikey = 10; // Ve Dikey hareket hızlarını belirledik
private void Form1_Load(object sender, EventArgs e)
{
g = panel_cizim.CreateGraphics(); // Formumuz açıldığında g nesnesini panel_cizime oluşturduk
}
private void panel_cizim_Paint(object sender, PaintEventArgs e)
{
g.FillEllipse(b, r); // Panel_cizim her ekrana geldiğinde g yi fillellipse ederek yani doldurarak görüntüye getir.
//Brush ve rectangleyide belirttik
}
private void timer1_Tick(object sender, EventArgs e) // Timer her tick olduğunda
{
if (r.Left <= 0) yatay = Math.Abs(yatay); // rectanglemiz r miz sola çarptıysa yatayda pozitif ilerlesin
if (r.Right >= panel_cizim.Width) yatay = Math.Abs(yatay) * (-1);// rectanglemiz r miz sağa çarptıysa yatayda negatif ilerlesin
if (r.Top <= 0) dikey = Math.Abs(dikey); // rectanglemiz r miz yukarı çarptıysa dikeyde pozitif ilerlesin
if (r.Bottom >= panel_cizim.Height) dikey = Math.Abs(dikey) * (-1); // rectanglemiz r miz aşağı çarptıysa dikeyde negatif ilerlesin
r.Location = new Point(r.X + yatay, r.Y + dikey); // r nin konumumunu sürekli yatay vve dikey de değiştir
panel_cizim.Refresh(); // Paneli sürekli yenile
}
private void trackBar1_Scroll(object sender, EventArgs e) // Hız
{
timer1.Interval = trackBar1.Value; // Timerın intervalini değiştir trackbar1de ki değerle
}
private void trackBar2_Scroll(object sender, EventArgs e)
{
r.Size = new Size(trackBar2.Value,trackBar2.Value); // R nin boyutunu değiştir trackbar2de ki değerle
}