Melanjutkan Space Invader game sebelumnya, kini kita akan membuat alien juga bisa menembak balik ke arah pesawat, menyempurnakan kondisi Game Over, serta menambahkan pengurangan skor jika alien berhasil lolos tanpa ditembak.
Pada sprite Alien, tambahkan sinyal tembakan di skrip clone-nya:
when I start as a clone
broadcast [hit] and wait
...
Pada sprite Alien Missile, tambahkan skrip untuk merespons sinyal ini:
when I receive [hit]
create clone of [myself]
show
Karena posisi X alien bersifat acak setiap kali muncul, kita perlu cara untuk “membagikan” posisi tersebut ke peluru. Buat variabel baru bernama Alien X. Pada skrip Alien, alih-alih langsung memasukkan pick random ke dalam blok go to, simpan dulu nilainya:
set [Alien X] to (pick random -200 to 200)
go to x: (Alien X) y: 145
Dengan begitu, nilai posisi X alien tersimpan dan bisa dipakai kembali oleh sprite lain (Alien Missile) untuk menentukan posisi awal peluru:
when I start as a clone
go to x: (Alien X) y: 105
Posisi Y peluru diatur sedikit di bawah posisi awal alien (misalnya alien di y: 145, peluru muncul di y: 105) agar terlihat seperti keluar dari alien tersebut.
when I start as a clone
go to x: (Alien X) y: 105
show
repeat until
change y by -10
delete this clone
Sama seperti peluru pesawat, peluru alien ini bergerak (kali ini turun, dengan nilai negatif) sampai menyentuh tepi, lalu dihapus.
Pastikan sprite asli Alien tetap tersembunyi (menggunakan hide di skrip utama) karena yang tampil di layar hanyalah clone-clone-nya.
Sebelumnya, Game Over hanya dipicu saat pesawat menyentuh Alien. Sekarang perlu ditambahkan kondisi lain: Game Over juga terjadi jika pesawat tertembak Alien Missile. Gunakan operator or:
when [green flag] clicked
forever
if < or > then
broadcast [Game Over]
Kembali ke skrip clone Alien (di titik saat clone dihapus karena sudah mencapai tepi bawah — menandakan alien berhasil lolos tanpa ditembak), tambahkan pengurangan skor:
repeat until
change y by -8
change [Score] by -1
delete this clone
Sekarang, setiap kali alien berhasil sampai ke bawah tanpa tertembak, skor akan berkurang 1 — menambah tantangan karena pemain harus aktif menembak, bukan sekadar menghindar.
Beberapa nilai bisa disesuaikan untuk menyeimbangkan tingkat kesulitan permainan:
-10 menjadi -14 (peluru alien lebih cepat).y: 145 menjadi y: 150, memberi jarak lebih jauh antara alien dan pesawat sebelum peluru mengenai.Sprite Spaceship: bergerak mengikuti mouse, memicu Game Over jika menyentuh Alien atau Alien Missile.
Sprite Missile (peluru pesawat): ditembak lewat klik mouse, bergerak ke atas, menghapus alien saat mengenainya (skor +1).
Sprite Alien: muncul acak dari atas via clone, menembak Alien Missile setiap muncul, mengurangi skor (-1) jika lolos sampai bawah tanpa tertembak.
Sprite Alien Missile: muncul dari posisi alien (via variabel Alien X), bergerak ke bawah, memicu Game Over jika mengenai pesawat.
Sprite Game Over: tersembunyi di awal, muncul dan menghentikan permainan saat menerima broadcast “Game Over”.
Space Invader Game ini menjadi salah satu project paling kompleks dalam seri tutorial, menggabungkan:
or untuk menggabungkan beberapa kondisi Game Over sekaligus.Selamat — game Space Invader ini sudah selesai sepenuhnya dan siap dimainkan!