C# Örnekleri – Top Oyunu v1 – Form Kenarlarından Seken Top

Timer yardımıyla hareket eden bir Button nesnesi, form kenarlarına çarptıkça yön değiştiriyor.

Form üzerinde top olarak yorumlayacağımız buton, Timer nesnesi kullanılarak hareket edecektir. Bu sebeple form üzerine bir adet Timer ekleyip şu ayarlamaları yapıyoruz:

  • Enabled: True
  • Interval: 1

Form üzerine bir adet buton ekliyor ve bu butonun Name özelliğini kare olarak değiştiriyoruz. Ardından butonun özelliklerini şu şekilde ayarlıyoruz:

  • BackColor: Silver
  • Enabled: False
  • FlatAppearance / BorderSize: 0
  • FlatStyle: Flat

Form nesnesinin de özelliğini FormBorderStyle: None olarak değiştiriyoruz. Böylece formun kenarları kaldırılıyor ve topun hareketi, form dışına taşmadan tamamen form içinde kalıyor.

C# ile Formu Kapatma

Formun  kenarlık stilini yok etmemiz sebebiyle formun kapanmasını sağlayan pencere butonları da gizlenecektir. Bunun için formun üstüne çift tıklandığında formun kapanması sağlamak adına Form1_DoubleClick olayına aşağıdaki kodu yazıyoruz:

Timer’ın Her Tetiklenmesiyle Butonun Yaptığı Hareket

Öncelikle dikeyYon ve yatayYon olmak üzere 2 adet değişken tanımlanıyor. Varsayılan olarak ikisine de 1 değeri veriliyor. Timer’ın her tetiklenmesinde ise butonun üst ve sol boşluğuna, dikeyYon ve yatayYon kadaar ekleme yapılıyor. Böylece form ilk açıldığında buton, hem sağa hem de alta doğru 1 piksel kaydırıldığından sağ alta doğru hareketine başlıyor.

Topun Yön Değiştirmesi

kare ismini verdiğimiz buton, formun kenarlarına çarpınca yer değiştirecektir. Ancak bunun için öncelikle topun form kenarlarına temas etmesi gerekir.

Topun alt kısmı, formun yüksekliğini geçerse formun altına çarpmış demektir. Bu yüzden, artık yukarıya doğru gitmesini sağlamak için dikeyYon olarak tayin edilen değişkenin bundan sonra 1 eklemek yerine 1 çıkarması gereklidir. 1 olarak değeri atanan dikeyYon değişkeni, -1 ile çarpıldığında -1’e dönecektir. Benzer şekilde, formun üst sınırına dayanan kare isimli butonun -1 olan dikeyYon değişkeni yine -1’le çarpılır ve bu sefer bu değişkenin değeri 1 olur.

Benzer şekilde, formun sağına veya soluna çarpan butonun yönü, yatayYon değişkeninin -1 ile çarpılmasıyla aksi yönde hareket etmesi sağlanır. Sola gidiyorsa sağa doğru, sağa gidiyorsa sola doğru hareketine devam eder.

Top Oyunu Örneği Program Kodları

Butonumuza “kare” ismini verdik. Kare, Timer‘ın her tetiklenmesinde 1 piksel yatay, 1 piksel de dikey yönde hareket ediyor. Ancak butonun bu hareketi, form kenarına çarpana kadar böyle devam ediyor. Eğer buton, formun sağı veya soluna çarparsa yatay olarak yönü değişirken alt veya üstüne çarptığında yönü dikey olarak değişecektir.

 

About Hürkal HÜSEM

2010 yılından bu yana Bilişim Teknolojileri Öğretmeni olarak meslek liselerinde görev yapmaktayım.

View all posts by Hürkal HÜSEM →

One Comment on “C# Örnekleri – Top Oyunu v1 – Form Kenarlarından Seken Top”

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.