Javascript Game #13:
Proyek Game #4: Tangkap Bintang Jatuh!
Hai para pemburu bintang! Kali ini kita bikin game yang lebih seru: Tangkap Bintang Jatuh. Kamu punya keranjang di bawah layar, bisa digerakin kiri/kanan pakai tombol panah. Bintang-bintang berjatuhan dari atas. Setiap bintang yang berhasil ditangkap, skormu naik 1. Tapi kalau ada bintang yang jatuh sampai bawah, nyawamu berkurang 1. Kamu punya 3 nyawa. Bertahanlah selama mungkin dan kumpulkan skor tertinggi!
PENJELASAN GAME
Yuk kita lihat apa aja yang baru dari game ini dibanding game kura-kura lapar.
1. Nyawa (Lives)
// kalau bintang jatuh ke bawah:
lives--;
if (lives <= 0) gameActive = false;
Sekarang kita punya nyawa. Setiap kali bintang tidak tertangkap dan jatuh sampai bawah, nyawa berkurang 1. Kalau nyawa habis, game over. Ini bikin game lebih menantang!
2. Deteksi Jatuh vs Tabrakan
// tertangkap
} else if (star.y > CANVAS_HEIGHT) {
// jatuh, nyawa -1
}
Kita bedakan antara bintang yang mengenai keranjang (skor +1) dan yang melesat sampai bawah (nyawa -1).
3. Spawn Rate
if (Math.random() < SPAWN_RATE) spawnStar();
Bintang muncul secara acak dengan peluang 2% setiap frame. Karena frame rate sekitar 60 fps, berarti rata-rata 1-2 bintang per detik. Bisa disesuaikan.
4. Game Over dan Reset
gameActive = false;
alert('Game Over');
}
Begitu nyawa habis, kita matikan game loop dan tampilkan pesan. Tombol reset akan memanggil resetGame() yang mengembalikan semua ke awal.
MISI TAMBAHAN (COBA SENDIRI!)
Kembangkan game ini lebih seru dengan ide-ide berikut:
- Tambah kecepatan bintang seiring waktu (semakin lama semakin cepat).
- Buat bintang emas (skor +5) dan bintang hitam (skor -2, atau kurangi nyawa).
- Tambahkan efek suara saat menangkap bintang dan saat kehilangan nyawa.
- Tampilkan skor tertinggi dengan localStorage.
- Buat level: setiap 10 skor, kecepatan bintang bertambah.
📸 Kembangkan dan tunjukkan ke teman-temanmu!
📝 RANGKUMAN SERU
- Kita belajar menambahkan nyawa ke dalam game.
- Membedakan antara tangkap dan jatuh.
- Menggunakan spawn rate untuk memunculkan objek.
- Game loop tetap jadi jantung animasi.
- Sekarang kamu bisa bikin game yang lebih seru dengan tantangan nyawa!