Kita akan membuat game baru bertema virus, mirip permainan “whack-a-mole” — virus muncul-hilang dari dalam kotak, dan pemain harus mengklik virus saat sedang muncul (di luar kotak) untuk mendapat skor, sambil menghindari klik saat virus sedang bersembunyi (di dalam kotak).
Buat project baru, beri nama “Virus”. Karena gambar virus tidak tersedia di galeri sprite bawaan Scratch, upload gambar virus sendiri lewat opsi Upload Sprite pada menu Choose a Sprite.
Sprite ini akan memiliki dua costume berbeda untuk mensimulasikan efek virus keluar-masuk kotak:
Dengan cara ini, satu sprite bisa “berubah” tampilan dari virus tersembunyi menjadi virus muncul hanya dengan mengganti costume-nya.
Buat variabel baru bernama Score. Susun skrip berikut:
when [green flag] clicked
forever
next costume
wait (pick random 0.5 to 1) seconds
Blok next costume membuat virus bergantian antara costume “virus_show” dan “virus_hide”. Blok wait (pick random 0.5 to 1) seconds memberi jeda waktu acak antara 0.5 sampai 1 detik sebelum berganti lagi — membuat pola muncul-hilangnya virus tidak monoton dan lebih menantang untuk ditebak.
Tambahkan skrip terpisah untuk menangani klik pemain, dengan logika: jika virus sedang muncul (costume “virus_show”) saat diklik, skor bertambah; jika virus sedang tersembunyi (costume “virus_hide”) saat diklik, skor berkurang:
when this sprite clicked
if <(costume [name]) = "virus_show"> then
change [Score] by 1
if <(costume [name]) = "virus_hide"> then
change [Score] by -1
Blok pelaporan costume name dari kategori Looks digunakan untuk memeriksa costume mana yang sedang aktif saat klik terjadi, lalu dibandingkan menggunakan operator =.
Sesuai konsep game (6 kotak virus tersusun dalam grid), duplikat sprite virus ini menjadi total 6 sprite (klik kanan → Duplicate, ulangi 5 kali), lalu beri nama masing-masing seperti virus_1, virus_2, virus_3, dan seterusnya. Atur posisi X dan Y masing-masing virus secara manual (drag atau isi langsung nilai X/Y di panel Sprite) sehingga tersusun rapi membentuk pola grid 2 baris x 3 kolom (atau sesuai desain yang diinginkan) di stage.
Tambahkan set Score to 0 di awal skrip utama masing-masing virus, agar skor selalu dimulai dari 0 setiap kali green flag diklik:
when [green flag] clicked
set [Score] to 0
forever
next costume
wait (pick random 0.5 to 1) seconds
when [green flag] clicked
set [Score] to 0
forever
next costume
wait (pick random 0.5 to 1) seconds
when this sprite clicked
if <(costume [name]) = "virus_show"> then
change [Score] by 1
if <(costume [name]) = "virus_hide"> then
change [Score] by -1
Catatan: skrip ini perlu disalin ke semua 6 sprite virus (bisa disalin otomatis saat menduplikasi sprite, karena kode ikut tersalin bersama sprite-nya).
Pada tutorial berikutnya, kita akan menambahkan mekanisme Game Over — permainan akan berakhir jika skor turun hingga -1 (artinya pemain terlalu banyak salah klik virus yang sedang tersembunyi).