Senin, 16 November 2015

Membuat Karakter Musuh Pada Game Platformer

Kali ini kita akan menambahkan karakter musuh / enemy pada game platformer yang telah kita buat sebelum nya. Ada berbagai macam type atau karakter enemy, masing2 dibedakan atas kemampuan atau kepintaran musuh tersebut. Sebagai contoh yang akan kita buat disini adalah musuh yang bergerak mondar mandir di area tertentu. Gerakan mondar mandir tadi sering disebut dengan istilah enemy patrol.

Kita mulai dengan membuka kembali project game platformer sebelum nya. Klik kanan pada Layout dan Insert new object. Pilih object type Sprite, dan kita beri nama Spider. Selanjut nya kita Load image from file. Dan seperti biasa, saya akan gunakan free asset (gambar) dari Scirra, yaitu file spider_walk1.png.
Kemudian untuk membuat Spider terlihat bergerak, kita tambahkan frame pada box Animation frames. Dan untuk image nya, kita gunakan file spider_walk2.png.
Jangan lupa untuk merubah atribut Loop menjadi Yes, agar animasi-nya berjalan.

Lalu kita berikan behavior Platform pada karakter Spider.
Selanjutnya kita akan memasangkan sebuah instance variabel, misal kita beri nama Patrol. Variabel Patrol ini fungsinya untuk mengecek apakah Spider sedang berjalan ke kiri (Patrol = 0) atau ke kanan (Patrol = 1). Caranya klik pada objek Spider, dan perhatikan di kolom properties sebelah kiri; di situ ada atribut Instance Variables. Klik Add / edit Instance Variables. Lalu masukkan nama variabel nya (Patrol) dan nilai / value awal nya (yaitu 0).
Kemudian kita perlu membuat bagaimana caranya karakter Spider berbalik arah dan bergerak mondar mandir terus menerus. Disini saya menggunakan bantuan sebuah sprite Border. Nanti nya Spider akan mendeteksi, apabila terjadi tubrukan (collision) dengan Border, maka Spider akan berbalik arah.

Kita letakkan sprite Border ini di tepi kiri dan kanan layar seperti gambar berikut.
Untuk objek Border tidak membutuhkan behavior. Tetapi kita tidak ingin objek Border ini terlihat. Sehingga kita rubah Initial visibility menjadi Invisible (tidak terlihat).
Sekarang tinggal kita atur logika gerakan Spider nya. Pada Event sheet, klik Add event lalu pilih Compare instance variable.
Kemudian kita pilih variable Patrol Equal to 0.
Jika Patrol = 0, kita gerakkan Spider ke kiri. Mengapa ke kiri? Ini hanya soal pilihan saja dan kebetulan image asli nya Spider ini menghadap ke kiri. Klik Add action, pilih Spider dan Simulate control. Kemudian pilih Control > Left.
Disini maksudnya kita menggerakkan Spider dengan cara simulasi, seolah-olah kita menekan tombol panah kiri. Sehingga Spider akan bergerak ke kiri.

Berhubung gerakan Spider ke kiri adalah gerakan asli nya, maka kita berikan state Spider = Not mirrored. Klik Add action, pilih Spider dan pilih Set mirrored. Lalu State kita pilih Not mirrored.
Nah, selanjutnya kita atur gerakan Spider ke arah kanan. Caranya mirip dengan penjelasan di atas, hanya dibalik. Untuk Simulate control kita pilih Right dan Set mirrored = Mirrored. Nantinya kita akan mendapatkan hasil seperti gambar di bawah.
Berikutnya kita ingin membalik gerakan Spider, misal tadi nya bergerak ke kiri kemudian berganti gerak ke kanan. Kondisi nya adalah saat Spider bertubrukan dengan Border, maka balik arah gerakan Spider.

Klik Add event, pilih Spider dan pilih On collision with another object. Lalu objek yang dipilih adalah Border.
Kita ingin menambahkan pengecekan kedua, yaitu apakah variabel Patrol = 0 atau 1. Klik kanan (right click) pada event yang telah kita buat sebelum nya, yaitu Spider > On collision with Border. Pilih Add > Add sub-event (S).
Pada box Add event kita pilih Spider dan pilih Compare instance variable. Pilih variabel Patrol Equal to 0.
Kemudian klik Add action, pilih Spider dan pilih Set value. Lalu kita isi value untuk Patrol = 1. Selanjutnya kita tambahkan Else, yaitu kondisi yang berbeda dari sebelumnya. Caranya dengan klik kanan di bawah sub event, lalu Add > Add Else (X)
Lalu untuk Else, kita berikan action untuk merubah nilai variabel Patrol menjadi 0. Hasil akhirnya bisa dilihat di gambar berikut.
Nah, sampai disini kita telah berhasil membuat karakter Spider sebagai musuh. Dimana Spider akan bergerak mondar mandir dari kanan ke kiri dan berbalik arah ke kanan lagi. Demikian seterusnya.

Sebagai tambahan, saya membuat sebuah algoritma untuk mengatur interaksi antara player dengan musuh. Interaksi yang saya buat cukup sederhana, yaitu apabila objek player (Mario) bertubrukan dengan Spider, maka hancurkan objek Mario tersebut. Untuk tambahan efek saya menggunakan behavior Flash, dimana objek Mario akan berkedip2 apabila bertabrakan dengan Spider, dan setelahnya Mario akan lenyap dan muncul kembali dari posisi X dan Y tertentu. Sengaja tidak saya jelaskan secara mendetail, namun hasil akhirnya dapat dilihat pada gambar di bawah ini.
Ok, teman2.. selamat mencoba!

Tidak ada komentar:

Posting Komentar