C# ile top zıplatma programı yapmak için öncelikle bir Windows Forms uygulaması oluşturulmalıdır. Ardından, programın çalışma mantığı şu şekilde olabilir:
Topun hareketi için bir timer oluşturulur ve timer’ın interval değeri belirlenir.
Topun hareketi, timer’ın tick event’ında yapılır. Topun x ve y koordinatları belirlenir ve topun boyutları göz önünde bulundurularak ekrandan çıkıp çıkmadığı kontrol edilir.
Topun çizimi için bir Paint event’i oluşturulur ve topun x ve y koordinatlarına göre oval şeklinde bir nesne çizilir.
Topun zıplama hareketi, y koordinatının artırılıp azaltılmasıyla yapılır. Zıplama işlemi için bir flag değişkeni kullanılır ve top yere çarptığında flag değişkeni true yapılır. Flag değişkeni true olduğu sürece y koordinatı azaltılarak top zıplama hareketi yapar.
Topun zıplama hareketi, fare tıklaması ya da klavye tuşu ile de başlatılabilir. Bu durumda, MouseDown event’i ya da KeyDown event’i kullanılabilir.
Topun çarpma hareketi, topun x ve y koordinatları ile diğer nesnelerin koordinatları arasındaki mesafenin hesaplanmasıyla yapılır. Topun koordinatları ile diğer nesnenin koordinatları arasındaki mesafe, topun yarıçapı ile diğer nesnenin genişlik ya da uzunluğunun toplamının yarısının karşılaştırılmasıyla kontrol edilir. Eğer bu koşul sağlanıyorsa topun çarpma hareketi gerçekleşir.
Topun çarpma hareketi sonrasında, topun yönü değiştirilebilir veya topun hızı arttırılabilir.
Aşağıdaki örnek kod, basit bir top zıplatma programının nasıl yapılacağını göstermektedir. Bu programda, sadece topun zıplama hareketi ve çarpma hareketi işlemleri yapılmaktadır.
csharp
Bu olay her zaman belirtilen zaman aralıklarında tetiklenir ve topun hareketini kontrol eder. Topun yönü ve konumu her zaman güncellenir, sonra topun tabana, tavana veya yanlara çarpıp çarpmadığı kontrol edilir. Eğer top tabana çarparsa, hızı sürtünme katsayısı ile azaltılır ve minimum hızı geçerse hareketi durdurulur. Formu yeniden çizmek için Invalidate() yöntemi kullanılır.
Bu uygulamada herhangi bir sorun yaşarsanız aşağıya yorum olarak bırakabilirsiniz. Bunun yanı sıra web sitemizdeki diğer hazır C# programlama örneklerine ulaşmak için bu linke tıklayabilirsiniz.

