Javascript Game #13: Proyek Game #4 - Tangkap Bintang Jatuh!

Javascript Game #13:
Proyek Game #4: Tangkap Bintang Jatuh!

😂 Joke pembuka: "Bintang jatuh itu bukan bintang beneran, tapi komet? Eh, di game ini kita tangkap pake keranjang biar dapat skor. Jangan sampai kejatuhan bintang, nanti nyawa berkurang!"

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!

0
❤️ 3
😂 Joke sambil main: "Bintang jatuh itu sebenernya pesawat kertas yang lagi main parachute. Tapi di game ini, mereka nggak pake parasut, makanya jatuhnya cepet!"

PENJELASAN GAME

Yuk kita lihat apa aja yang baru dari game ini dibanding game kura-kura lapar.

1. Nyawa (Lives)

let lives = 3;
// 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

if (star.y + star.size > basketY ...) {
  // 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

const SPAWN_RATE = 0.02;
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

if (lives <= 0) {
  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:

  1. Tambah kecepatan bintang seiring waktu (semakin lama semakin cepat).
  2. Buat bintang emas (skor +5) dan bintang hitam (skor -2, atau kurangi nyawa).
  3. Tambahkan efek suara saat menangkap bintang dan saat kehilangan nyawa.
  4. Tampilkan skor tertinggi dengan localStorage.
  5. 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!

Javascript Game #13 selesai! Besok kita belajar menambahkan efek suara biar game makin heboh!

Ada pertanyaan? Tulis di komentar atau tanya kakak/guru.

Lebih baru Lebih lama

نموذج الاتصال