C# Duvarlara Çarpıp Dönen Top Graphic Sınıfı

C# Duvarlara Çarpıp Dönen Top Graphic Sınıfı

C# Duvarlara Çarpıp Dönen Top Graphic Sınıfı

Merhaba arkadaşlar çok güzel bir örnekle sizlerleyim.Bu örnek graphics sınıfı kullanarak yapılmıştır.Soru ve görüşlerinizi yorum olarak atabilirsiniz. Kodların açıklaması mevcuttur.

        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
        }

Yorumlar