Membuat game sokoban dengan defold part 4
Halo..
Balik lagi lanjutin tutorial buat game pake defold. Sekarang akan kita buat gameobject pake factory.
Di dokumentasi defold manual, factory digunakan untuk membuat gameobject pada game yang berjalan.
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
Membuat Gameobject Player
Karena sebelumnya gameobject itu berada pada main.collection
, maka disini saya memindahkan dengan membuat folder go
dan meletakan player.go
sebagai gameobject yang nantinya akan dipangil di dalam game.
setelah itu membuat mencopy component player gameobject ke dalam player.go
Menyiapkan Factory
Kembali lagi ke main.collection
lalu didalam collectionnya kita akan membuat gameobject dengan nama factory
dimana didalamnya akan ada factory component. Lalu pada prototype masukan player.go
kedalam factory tersebut.
Mungkin akan sedikit membingungkan bagi kalian yang sebelumnya pernah menggunakan game engine lain / game framework. Tapi memang ini konsep yang di usung oleh defold. Dimana setiap object instance yang ingin di pangil mereka membutuhkan factory component didalamnya.
Ubah Tilemap
Kita ubah tilemap kita terlebih dahulu dengan menambahkan layer baru, yang saya beri nama setup
dan layer ini digunakan untuk tanda object baru yang ingin saya tampilkan / spawning.
Layer dengan nilai tilemap 74 adalah tanda posisi player. Nantinya player akan di pangil kedalam game disitu.
Membuat game object controller
Disini saya akan menggunakan controller sebagai controller dari main.collection itu sendiri. Seperti spawning player.go
, dan semua yang berhubungan melakukan kontrol terhadap collection saya akan melewati gameobject controller.
Lalu masukan script seperti dibawah.
1 | local function map_position(x, y) |
Script diatas menjadi 3 fungsi, yaitu map_position dimana, disini saya mebalikan return dari tilemap yang dimasukan akan mengembalikan position dari position pixel layar.
setup_map
fungsi dimana kita akan melakukan checking setiap tilemap yang ada di sana, dan tile yang bernilai 74 akan memanggil factory component buat spawing objectnya. Selain itu akan mengubah tile 74 tersebut menjadi 0, atau nilainya di reset.
dan fungsi init hanya memanggil fungsi dari setup_map.
Testing
Sekarang setelah selesai, kita testing kembali. Klo tidak ada error kalian akan melihat tampilan yang sama seperti sebelumnya. Oh iya, memang secara tampilan tidak ada yang berubah dari yang sebelumnya, tetapi collection yang sekarang akan kita perbanyak untuk level-level selanjut.
Penutup
Tidak banyak yang dilakukan hari ini, hanya membuat gameobject baru dengan factory component, dan memanggil factory component tersebut untuk spawn player. Tetapi Hal tersebut akan berguna untuk pembuatan game kedepanya.
Okeh sekian dari saya, jika ada pertanyaan ataupun kendala terhadap tutorial diatas, kalian bisa comment disini ataupun di youtubenya.