C# ile Picturebox Hareketi (Temel 2D Oyun Mantığı)

Bu derste yön tuşları ile obje hareket ettirmeyi göreceğiz.

Selamlar,

Bu dersimizde kısaca picturebox nasıl hareket ettirilir, onu göreceğiz.

[*] Öncelikle bir adet proje oluşturuyoruz.
[*] Formumuzun boyutlarını 500;500px seçiyoruz.
[*] Forma bir adet picturebox atıyoruz ve bu picture box içerisine herhangi bir resmi background image olarak ekliyoruz.
[*] Properities kısmından Picturebox'un Size değerine 50;50 yazıyoruz ve Backround Image Layout değerini Zoom seçiyoruz.

Amaçlarımız:
[*] Yön tuşlarına göre resmi hareket ettirmek
[*] Resmin ekran dışına taşmasını engellemek
[*] Resim bir bölgeye girdiği zaman uyarı vermek

İşe koyulalım.
[*] Formumuza tıklayıp Events kısmından KeyDown yazan yere çift tıklayarak bir Event oluşturuyoruz.
[*] Kod penceresi zaten otomatik olarak gelecektir. Şimdi bu kısma aşağıdaki kodları ekliyoruz. Kodlarla ilgili fazla açıklama yapmıyorum, zira orta seviyedeki kullanıcılar için gayet açık.


private void Form1_KeyDown(object sender, KeyEventArgs e)//Event ile oluşturduk

        {

            int x = pictureBox1.Location.X;

            int y = pictureBox1.Location.Y;



            if (e.KeyCode == Keys.Right && x<430)//buradaki 430 ve diğer 410 değerlerini deneme yanılma ile buldum

                x += 5;                    //değiştirin ne demek istediğimi anlarsınız =)

            else if (e.KeyCode == Keys.Left && x>0)

                x -= 5;//Bunlar herbir kaymanın kaç px olacağını söylüyor

            else if (e.KeyCode == Keys.Up && y>0)

                y -= 5;

            else if (e.KeyCode == Keys.Down && y<410)

                y += 5;

            pictureBox1.Location = new Point(x, y);



            if (x < 100 && y < 100)//bunu obje sol üst köşeye girerse farklı komutlar verebilelim diye yaptım

            {

                MessageBox.Show("Tebriklern:)");

                pictureBox1.Location = new Point(250, 250);//o bölgeye girdikten sonra tekrar başlanacak yer.

            }

        }



Saygılar..
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

İyi günler ; Deneme yanılma ile belirlediğiniz boyutlar yerine ; this.Size.Width - pictureBox1.Width //430 this.Size.Height - pictureBox1.Height //410 kodlarını kullanabilirsiniz böylece form boyutunu da sınırlamak yerine istediğiniz boyuta ayarlayabilirsiniz.

Yukarı Git