PADDLE BALL
Introductions PADDLE BALL
Paddle Ball Game adalah gim arkade klasik yang dibuat menggunakan Flutter.
1. Arsitektur & Teknologi Game: Game Paddle Ball dikembangkan menggunakan Flutter, memanfaatkan kemampuan rendering berkinerja tinggi untuk animasi yang halus.Mesin Animasi: Loop game digerakkan oleh StatefulWidget menggunakan SingleTickerProviderStateMixin dan AnimationController dengan durasi tetap (16ms untuk ~60 FPS). Metode _updateGame, yang dipanggil pada setiap tick, menangani semua pemeriksaan fisika dan tabrakan.Rendering: Elemen game (Bola, Dayung, Batu Bata) dirender menggunakan kombinasi widget Flutter: Transform.translate di dalam Stack untuk pemosisian yang tepat berdasarkan koordinat $(\text{x}, \text{y})$ yang dihitung, dan widget Container yang diberi gaya untuk daya tarik visual (gradien, bayangan).Sistem Koordinat: Mesin fisika beroperasi pada sistem koordinat pusat di mana $(0, 0)$ adalah pusat layar, menyederhanakan logika tabrakan dengan tepi dan dayung.2. Mekanisme Gameplay Inti: A. Pergerakan Bola: Posisi bola $(\text{ballX}, \text{ballY})$ diperbarui pada setiap frame berdasarkan vektornya saat ini $(\text{velocityX}, \text{velocityY})$.Kecepatan & Peningkatan Level: Kecepatan bola meningkat seiring dengan setiap level, membuat permainan semakin menantang (velocityX/Y = 4 + (level * 0.5)).Tabrakan Dinding: Ketika bola mengenai batas layar vertikal (kiri/kanan) atau horizontal (atas), komponen kecepatan yang sesuai akan dibalik (velocityX = -velocityX atau velocityY = -velocityY).B. Kontrol Dayung: Posisi horizontal dayung (paddleX) dikontrol langsung oleh input seret pengguna melalui callback onPanUpdate dari GestureDetector.Pantulan Cerdas: Tabrakan dayung menggunakan perhitungan pantulan yang cerdas. Sudut bola yang keluar ditentukan oleh hitPosition pada dayung (semakin dekat ke tepi menghasilkan komponen kecepatan horizontal yang lebih besar), mendorong tembakan bersudut untuk mengenai batu bata yang sulit dijangkau.C. Batu Bata dan Skor Inisialisasi: Batu bata diinisialisasi dalam grid (5 × 6 default) dengan warna berdasarkan posisi barisnya.Tabrakan: Tabrakan batu bata diperiksa pada setiap pembaruan game. Ketika bola bertabrakan, batu bata ditandai sebagai hancur (isDestroyed = true), skor meningkat 10 poin, dan arah vertikal atau horizontal bola dibalik berdasarkan sisi benturan.Tujuan Permainan: Naik Level: Level berlanjut ketika semua batu bata hancur. Satu set batu bata baru diinisialisasi, dan kecepatan bola meningkat.Kehilangan Nyawa: Jika bola jatuh di bawah posisi vertikal dayung (paddleY), pemain kehilangan nyawa. Bola diatur ulang ke tengah atas.Game Over: Permainan berakhir ketika pemain kehabisan nyawa (lives <= 0).3. Antarmuka Pengguna dan StatusTampilan Head-Up (HUD): Menampilkan Skor, Nyawa, dan Level saat ini di bagian atas layar.Status Permainan: Aplikasi mengelola tiga status berbeda:Layar Awal: Menampilkan instruksi dan tombol MULAI PERMAINAN untuk memulai level 1.Permainan Aktif: Alur permainan inti di mana dayung, bola, dan batu bata terlihat dan dianimasikan.Permainan Selesai: Menampilkan skor akhir dan level yang dicapai, beserta tombol MAIN LAGI untuk mengatur ulang status permainan.