PADDLE BALL
Introductions PADDLE BALL
Paddle Ball Game, Flutter ile geliştirilmiş klasik bir arcade oyunudur.
1. Oyun Mimarisi ve Teknolojisi: Raket Topu Oyunu, akıcı animasyon için yüksek performanslı işleme yeteneklerinden yararlanan Flutter kullanılarak geliştirilmiştir.Animasyon Motoru: Oyun döngüsü, SingleTickerProviderStateMixin ve sabit süreli (yaklaşık 60 FPS için 16 ms) bir AnimationController kullanan bir StatefulWidget tarafından yönlendirilir. Her tikte çağrılan _updateGame yöntemi, tüm fizik ve çarpışma kontrollerini ele alır.İşleme: Oyun öğeleri (Top, Raket, Tuğlalar), Flutter widget'larının bir kombinasyonu kullanılarak işlenir: Hesaplanan $(\text{x}, \text{y})$ koordinatlarına dayalı hassas konumlandırma için bir Stack içindeki Transform.translate ve görsel çekicilik için stilize edilmiş Container widget'ları (gradyanlar, gölgeler).Koordinat Sistemi: Fizik motoru, $(0, 0)$'ın ekran merkezi olduğu merkezi bir koordinat sisteminde çalışır ve kenarlar ve raketle çarpışma mantığını basitleştirir.2. Temel Oyun Mekaniği: A. Top Hareketi: Topun konumu $(\text{ballX}, \text{ballY})$, mevcut vektörü $(\text{velocityX}, \text{velocityY})$'ye göre her karede güncellenir.Hız ve Seviye Yükseltme: Top hızı her seviyede artar, bu da oyun deneyimini giderek daha zorlu hale getirir (velocityX/Y = 4 + (seviye * 0,5)). Duvar Çarpışması: Top dikey (sol/sağ) veya yatay (üst) ekran sınırlarına çarptığında, ilgili hız bileşeni tersine çevrilir (velocityX = -velocityX veya velocityY = -velocityY).B. Raket Kontrolü: Raketin yatay konumu (paddleX), bir GestureDetector'ın onPanUpdate geri çağırma işlevi aracılığıyla kullanıcı sürükleme girişiyle doğrudan kontrol edilir. Akıllı Sıçrama: Raket çarpışması, akıllı bir sıçrama hesaplaması kullanır.Çıkış topunun açısı, raket üzerindeki vuruş pozisyonuna göre belirlenir (kenara daha yakın vuruşlar daha büyük bir yatay hız bileşenine neden olur), bu da ulaşılması zor tuğlalara isabet etmek için açılı vuruşları teşvik eder. C.Tuğlalar ve Puanlama Başlangıç: Tuğlalar, sıra konumlarına göre renklerle bir ızgarada (varsayılan 5 x 6) başlatılır. Çarpışma: Tuğla çarpışması her oyun güncellemesinde kontrol edilir.Bir top çarpıştığında, tuğla yok edilmiş olarak işaretlenir (isDestroyed = true), puan 10 artar ve topun dikey veya yatay yönü, çarpma tarafına göre tersine çevrilir. Oyun Amaçları: Seviye Atlama: Tüm tuğlalar yok edildiğinde seviye atlanır.Yeni bir tuğla seti başlatılır ve top hızı artar. Can Kaybı: Top, raketin dikey konumunun (paddleY) altına düşerse, oyuncu bir can kaybeder.Top, üst orta noktaya sıfırlanır. Oyun Bitti: Oyuncunun canı bittiğinde oyun sona erer (canlar <= 0). 3. Kullanıcı Arayüzü ve Durum Baş Üstü Ekranı (HUD): Ekranın üst kısmında mevcut Skoru, Canları ve Seviyeyi gösterir. Oyun Durumları: Uygulama üç farklı durumu yönetir: Başlangıç Ekranı: 1.seviyeye başlamak için talimatları ve bir OYUN BAŞLAT düğmesini gösterir.Aktif Oyun: Raket, top ve tuğlaların görünür ve animasyonlu olduğu temel oyun döngüsü.Oyun Bitti: Ulaşılan son skoru ve seviyeyi, oyun durumunu sıfırlamak için bir TEKRAR OYNA düğmesiyle birlikte gösterir.