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