Javascript Game #11:
Proyek Game #2: Klik Koin Sebanyak-banyaknya!
Setelah berhasil bikin game tebak angka, sekarang kita bikin game yang lebih cepat dan seru! Game ini sederhana: dalam waktu 30 detik, kamu harus klik koin sebanyak mungkin. Setiap kali koin diklik, dia pindah ke posisi acak dan skormu bertambah 1. Siap-siap jari pegel!
✨ KLIK KOIN SEBANYAK MUNGKIN! ✨
PENJELASAN GAME
Yuk kita lihat kode di balik game ini! Tenang, nggak serumit kelihatannya.
1. Variabel Utama
let timeLeft = 30;
let timerInterval = null;
let gameActive = false;
Kita punya skor, waktu tersisa, timerInterval untuk menyimpan ID timer (biar bisa dihentikan), dan gameActive untuk tahu apakah game sedang berjalan.
2. Posisi Acak
const areaWidth = gameArea.clientWidth;
const areaHeight = gameArea.clientHeight;
const coinSize = 80;
const maxX = areaWidth - coinSize;
const maxY = areaHeight - coinSize;
const x = Math.floor(Math.random() * maxX);
const y = Math.floor(Math.random() * maxY);
return { x, y };
}
Fungsi ini menghitung ukuran area game dan ukuran koin, lalu memberikan posisi acak yang memastikan koin tidak keluar dari batas.
3. Memindahkan Koin
const pos = getRandomPosition();
coin.style.left = pos.x + 'px';
coin.style.top = pos.y + 'px';
}
Setelah dapat posisi baru, kita ubah properti CSS left dan top koin.
4. Event Klik Koin
if (!gameActive) return;
score++;
updateScore();
moveCoin();
});
Setiap koin diklik, skor naik, tampilan diperbarui, dan koin pindah.
5. Timer
timeLeft--;
updateTimer();
if (timeLeft <= 0) {
clearInterval(timerInterval);
gameActive = false;
alert('Waktu habis!');
}
}, 1000);
Interval berjalan setiap 1 detik, mengurangi waktu, memperbarui tampilan, dan menghentikan game jika waktu habis.
6. Tombol Reset
clearInterval(timerInterval);
startGame();
});
Tombol reset membersihkan timer lama dan memulai game baru dengan startGame().
MISI TAMBAHAN (COBA SENDIRI!)
Setelah game ini jalan, coba kembangkan dengan ide-ide berikut:
- Tambahkan efek suara setiap kali koin diklik (pakai
new Audio). - Buat koin ganda yang muncul dua koin sekaligus (pakai array).
- Tambahkan musuh (kotak hitam) yang jika diklik malah mengurangi skor.
- Buat target skor misal 50 poin, kalau tercapai tampilkan pesan menang.
- Simpan skor tertinggi dengan localStorage.
📸 Kembangkan dan tunjukkan ke teman-temanmu!
📝 RANGKUMAN SERU
- Kita belajar membuat game klik koin dengan timer.
- Menggunakan setInterval untuk timer, Math.random untuk posisi acak.
- Event klik pada elemen yang bergerak.
- Game ini bisa dikembangkan lebih seru lagi!