Kali ini saya akan membahas tentang collision. sebenarnya, fitur tersebut tidak hanya ada pada flash, namun juga ada pada semua aplikasi pembuat game. jadi collision kadang dikenal sebagai hit test atau collider. biasanya pada game 3d dikenal sebagai collider. contohnya seperti ini, jika objek A dan B bertemu (saling kena). maka ada event (bahasa indonesianya peristiwa) tertentu yg aktif. dan event ini kita yg tentukan di dalam script pemograman.
contoh lain yg bisa saya jelaskan adalah jika mobil kena dengan pembatas jalan, maka event yg bisa kita tentukan adalah kecepatan mobil berkurang, berhenti atau kalah didalam game. dan event ini tidak akan berhenti selama objek 1 masih kena dengan objek 2. untuk itulah diperlukan pembuatan objek baru untuk collision. lihat contoh gambar dibawah ini.
contoh objek collision pada mobil dan pembatas jalan |
begitu juga dengan karakter game 2d genre fighting yg kita buat. jika pukulan karakter A mengenai karakter B, maka jumlah damage yg sudah kita isi di karakter A akan mengurangi jumlah hp yg kita isi dari karakter B dan akan terus berkurang selama kedua objek tersebut masih kena. untuk memanggil objek collision, maka skripnya seperti ini.
if (objekA.hit.test(objekB) {
objekB.hp -= objekA.damage;
}
itu hanya contoh sederhana untuk collision dan kode tersebut adalah action script 2. hampir mirip dengan pemograman C++ atau C# walaupun mungkin berbeda. kembali ke topik collision. saat kita membuatnya nanti, kita harus paham tentang cara memberi nama pada objek movieclip (bukan yg di library) yg disebut dengan identifier terlebih dahulu. ini dilakukan agar bisa dipanggil di dalam action script. karena tanpa identifier, objek tidak akan bisa dipanggil dan tidak akan berfungsi. nanti akan saya jelaskan lebih detail saat kita membuatnya nanti biar kamu lebih paham. sekarang akan saya lanjutkan penjelasannya.
saat karakter A menjalankan animasi memukul. jika kita langsung atur collisionnya pada objek tangan. maka saat animasi masih berjalan, karakter B yg terkena tangan dari karakter A akan langsung menerima damage sehingga selama masih kena, hp dari karakter B akan terus berkurang. jadi untuk menghindari hal tersebut. kita membuat objek baru yg hanya 1 kali muncul tepat saat animasi memukul dan menghilang pada frame selanjutnya (hanya memerlukan 1 frame saja) yg disebut objek collision. kita setting alpha (opacity) nya agar tidak terlihat di dalam game karena hanya digunakan untuk collision. sekarang saya rasa kamu sudah paham dengan collision. jika belum, maka semoga saja kamu mengerti saat membuatnya nanti.
contoh apabila objek collision dibuat dan tidak dihapus ketika animasi berjalan |
diatas adalah contoh gambar yg saya buat sendiri agar kamu lebih mengerti dengan penjelasan saya. dan berikutnya adalah beberapa kesimpulan sederhana yg saya tuliskan.
1. collision diterapkan pada 2 objek atau lebih yg apabila saling bertemu (kena), maka akan menyebabkan peristiwa (event) terjadi sesuai dengan event yg kita tentukan.
2. pada objek mobil, objek collision diterapkan di depan bamper mobil dan pada pembatas jalan. contoh lain adalah karakter dan item pada game adventure dan sebagainya.
3. pada karakter game fighting, collision diterapkan pada tubuh, tangan dan kaki. jika kita membuat beberapa gerakan tertentu misalnya pukulan karakter A mengenai objek collision yg ada pada kepala karakter B, maka objek kepala akan mundur, tapi tidak dengan objek tubuh karakter. jika ada item, maka saat karakter A kena dengan item tersebut, event yg bisa kita tentukan adalah simpan atau gunakan item tersebut.
contoh objek collision sederhana dan lengkap |
4. identifier adalah penanda pada objek library kita yg sama dan diperlukan agar bisa dipanggil melalui action script, seperti menampilkan objek yg belum muncul saat game dimulai,duplicate objek, spawn item. untuk reset game dan lainnya. sebagai contoh. nama objek di library adalah karakter. sedangkan nama yg ada di identifier adalah karakter_A. nama identifier tidak boleh ada spasi dan simbol. kita bisa panggil library karakter berulang kali dengan nama identifier karakter_A1 dan A2,
biasanya collision dibuat menjadi 3 sampai 4 objek pada karakter. yaitu objek collision kepala, tubuh, tangan dan kaki karakter. jadi jika pukulan karakter A kena dengan objek collision kepala dari karakter_b, maka animasi 1 dijalankan. jika kena tubuh, maka animasi 2 dijalankan. begitu seterusnya. untuk game yg lebih komplit biasanya menggunakan objek collision yg komplit juga hingga saat karakter A memukul karakter B dan mengenai tangan dari karakter B, maka animasi tangan kena yg dijalankan. yah, kalau terlalu panjang penjelasan saya mungkin akan membuat kamu bingung. hehehe
baiklah, selanjutnya kita akan menerapkan teori ini pada objek game 2d kita yaitu karakter pahlawan kita. namun kita hanya akan membuat 4 objek saja, yaitu collision tubuh hingga kepala. kemudian tangan dan kaki. semoga saja kamu paham dengan penjelasan saya ini.
selanjutnya: Membuat game 2d animasi karakter part 8.
nah, jika sudah mengerti dengan penjelasan saya ini, kita akan mencoba menerapkannya pada objek karakter game 2d kita nanti. kalau tidak paham, tidak masalah. dengan berjalannya waktu nanti sambil membuat objek collision, kita akan mengerti dengan sendirinya. demikian tulisan dari saya dan sampai bertemu lagi serta salam hangat dari admin uyasur.
Tidak ada komentar:
Posting Komentar
Silahkan isi komentar kalian disini, setiap komentar akan tampil setelah disetujui oleh admin selama tidak melanggar aturan yg ada. dan url aktif akan dihapus secara otomatis oleh sistem blog ini. terima kasih