Membuat game sokoban dengan defold part 5
Halo..
Balik lagi lanjutin tutorial buat game pake defold. Kali ini videonya berbeda dengan tutorial sebelumnya.
Hari ini saya tidak melakukan live coding, tetapi hanya menampilkan code dan apa saja yang berubah dari sebelumnya.
Catatan
Oh iya, artikel ini ada versi video juga. Jika tertarik buat nonton videonya bisa di cek link youtube ini. Dan mungkin artikel dengan video ada perbedaan sedikit, tetapi punya tujuan dan makna yang sama
Perubahan level collection
- Membuat 2 Gameobject baru
Ada 2 gameobject tambahan yang akan di panggil di factory (gameobject-trigger, dan gameobject-box) - Menambahkan factory
Ada 2 factory tambahan (sekarang menjadi 3 factory), yaitu factory-box, factory-trigger, dan factory-player - Menganti script player_movement menjadi object_movement
pergantian ini dimaksudkan untuk membuat 1 script saja, sehingga box dan player akan menunggu perintah dari controller untuk melakukan aksi - Menggunakan game-controller.script sebagai controller di dalam game
disini game-controller dibuat seperti menara controller, yang menugaskan object untuk pindah / atau berubah.
Gameobject trigger
Didalam gameobject trigger sendiri tidak memiliki script. Tetapi didalamnya terdapat component Collision Object
yang di atur menjadi trigger dan dan hanya bereaksi saat bersentuhan dengan mask box
.
Selain itu juga ada component sprite
tapi saya isi dengan frame kosong / tidak bergambar
Gameobject box
Kalian bisa copy paste / duplicate dari gameobject player
, lalu ubah spritenya menjadi box, dan ubah juga collision component pada collisionobject, di properties group dan mask
Game object game-controller
Jadi saya buat game-controller layaknya menara controller yang melakukan perintah untuk melakukan perubahan kepada object-object yang di kontrolnya (dibawah kendali game-controller).
Di dalam game-controller script sendiri juga terdapat logic yang mengatur apakah didepan ada object atau tidak.
code dari game controller adalah seperti berikut :
1 | local actors = {} |
Code dari object_movement
Seperti yang sudah saya jelaskan sebelumnya. Object movement disini hanya menerima pesan
dari controller saat berpindah, dan mengirim pesan ke game-controller
saat bersingungan dengan object trigger
1 | local function current_grid(self) |
Penutup
Disini saya membuat gameobject dengan component collision object
yaitu physics 2d (defold yang menggunakan box-2d
sebagai physics engine), dan sebetulnya cakupan disini cukup luas. Mungkin lain kali saya akan membahas tentang physics engine defold di artikel sendiri.
Selain itu saya juga membuat gamenya menjadi 1 controller, supaya memudahkan saya dalam mengatur setiap permainannya.
Dan melakuakn pangilan perintah dengan mengirim pesan, ke object satu dengan object yang lain untuk berkomunikasi. Ini juga merupakan core concept dari defold itu sendiri.
Jika ada kesulitan, ataupun masalah. Kalian bisa bertanya disini ataupun di dalam komentar video youtube