Minggu, 06 November 2016

Tutorial GDevelop Bahasa Indonesia Bagian 8: Menambahkan Variable dan objek Text

Sebuah game, tidak melulu tentang jumlah skor yang diraih oleh sang pemain, ada juga game yang tidak memberikan skor seperti game Nintendo klasik Metroid, pemain hanya berusaha menyelesaikan game secepat mungkin. Namun pada umumnya, sebuah game memiliki sistem skor seperti pada game klasik Nintendo lainnya, Mario Bros. Tujuannya adalah untuk melihat sebagus mana sang pemain dibandingkan dengan pemain lainnya. Bahkan ada juga game yang memberikan bonus, nyawa tambahan misalnya, jika sang pemain mencapai skor tertentu.

Di sinilah Variable digunakan, Variable adalah sebuah "wadah" atau tempat untuk menyimpan sesuatu dalam program, baik itu angka (integer, float), teks (string) maupun keterangan true atau false (boolean). Variable dalam GDevelop ada 2 jenis, Variable biasa (local) dan Global Variable. Bedanya adalah, global variable dapat digunakan dan diakses isinya oleh dan dari seluruh aspek dalam game, sementara variable biasa hanya dapat diakses oleh objek yang memiliki variable tersebut saja.


Kita akan menambahkan sebuah variable bernama "melompat" langsung dari event editor, tugasnya adalah menyimpan nilai 0 (false) dan 1 (true). Tambahkan sebuah event (caranya dapat anda baca disini), Klik "Add a condition" pada event baru tersebut dan pada window "Edit the condition", buka folder "Platform behavior" dan klik "Is jumping".

Kita tidak usah menambahkan action karena kondisi ini membutuhkan pengecekan terhadap kondisi lainnya yaitu sebuah variable "melompat", jika nilainya 0 (false), maka bunyikan efek suara dan ubah nilai variable "melompat" tersebut menjadi 1 (true).

Gerakkan mouse anda ke atas event baru tersebut, dan klik "A sub event" untuk membuat sebuah event baru "anak" dari event "Is jumping" tadi, lalu gerakkan mouse anda ke atas event "anak" tersebut dan klik "Add a condition". Pada window "Edit the condition" buka folder "All objects", lalu buka folder "Variables" kemudian klik pilihan "Value of an object's variable".
Pada bagian kanan, pilih objek karakter anda (Lakon), dan klik tombol kotak biru di sebelah kotak "Variable", akan muncul window kecil "Choose a variable". Jika objek karakter anda belum memiliki variable sebelumnya, window tersebut akan kosong.
Klik + pada window tersebut untuk menambah sebuah variable baru, dan beri nama "melompat". Tidak usah mengganti nilai baku variable "melompat" ini karena karakter ini tidak sedang melayang, dan nilai tersebut akan kita ubah nanti jika dibutuhkan.
Klik pada variable "melompat" yang baru saja dibuat, lalu klik tombol "Choose" untuk memilih variable tersebut.
Pada kotak "Sign of test" berikan tanda "=" (tanpa kutip), dan pada kotak "Value of test", berikan nilai 0. Tidak usah memberi centang pada "Invert the condition"! Jika semuanya benar, maka tampilan window "Edit the condition anda akan nampak seperti ini:

Gambar 1

Lalu klik tombol Ok untuk menutup window tersebut dan kembali ke Event editor. Klik "Add an action" pada event "anak" ini, pada window "Edit the action", buka folder "Audio" dan klik "Play a sound". Pada bagian kanan, pilih berkas efek suara melompat, tidak usah mengubah yang lainnya.

Gambar 2
Klik Ok untuk menutup window tersebut dan kembali ke event editor.
Klik "Add an action" sekali lagi pada event "anak" tadi dan pada window "Edit the action, buka folder "All objects", buka folder "Variables" dan pilih "Modify a variable of an object".
Pada bagian kanan, isi Object dengan objek karakter anda, pilih variable "melompat" yang tadi anda buat, berikan tanda "=" pada "Modification's sign" dan angka 1 pada kotak Value.

Gambar 3
Lalu klik Ok untuk menutup window tersebut dan kembali ke event editor.


Sekarang jika semuanya benar, ketika anda mencoba game anda, maka suara akan berbunyi sekali pada saat karakter anda melompat pertama kali, dan tidak akan berbunyi lagi. Ini disebabkan karena variable "melompat telah berubah nilainya menjadi 1, sementara aksi membunyikan suara membutuhkan nilai 0 pada variable melompat. Untuk mengubah nilai variable "melompat" kembali menjadi 0, anda membutuhkan sebuah event baru di mana kondisinya adalah saat objek karakter anda mendarat dan berdiri di atas tanah maka aksinya adalah mengubah nilai "melompat" menjadi 0.

Klik sebuah event selain event "anak", lalu buat sebuah event baru, klik "Add a condition", kemudian pada window "Edit the condition", buka folder "Platform behavior" lalu pilih "Is on floor".
Pada bagian kanan, pilih objek karakter anda, dan pilih "PlatformerObject" pada kotak Behavior, lalu klik Ok untuk menutup window.

Gambar 4
Klik "Add an action" pada event baru ini, dan buka folder "All objects", buka folder "Variables" dan pilih "Modify a variable of an object". Pada bagian kanan, pilih objek karakter anda, pilih variable "melompat", beri tanda "=" dan berikan nilai 0 pada kotak Value.

Gambar 5
Klik Ok untuk menutup window tersebut dan kembali ke event editor. Jika semuanya anda kerjakan dengan benar, maka tampilan event editor anda akan nampak seperti ini:

Gambar 6
Sekarang jika anda mencoba menjalankan game anda, karakter anda akan berbunyi setiap kali melompat.

Untuk selanjutnya, kita akan menambahkan sebuah Global variable, yang mana akan digunakan di seluruh game yaitu global variable Skor. Global variable ini akan dimulai dari angka 0 (seperti POM Bensin aja...) dan akan ditambah nilainya setiap kali objek Lakon memungut sebuah koin.

Klik kanan pada Project anda di kotak Project manager, lalu pilih "Modify global variables".

Gambar 7
Pada window yang muncul, klik tombol + untuk menambah sebuah variable dan beri nama "Skor" (atau score, atau nilai, terserah anda). Klik Ok untuk menutup window "Edit the variables (Global variables)". Sekarang game anda sudah memiliki sebuah Global variables yang bisa digunakan kapan saja, di mana saja dalam game anda ini.

Untuk memodifikasi nilai global variable tersebut, anda bisa melakukannya pada saat objek karakter anda mengambil sesuatu atau membunuh musuh. Saat ini saya akan memberi contoh menambah nilai 100 pada skor jika karakter lakon mengambil sebuah koin.

Buka event editor, pada event dimana karakter anda bersentuhan (Collision) dengan koin, tambahkan sebuah action baru dengan mengklik "Add an action".
Pada window "Edit the action", buka folder "Variables", buka folder "Global variables" dan pilih "Value of a global variable".
Pada bagian kanan, pilih global variable yang tadi anda buat (disini namanya "Skor"), dan pada kotak "Modification's sign" beri tanda "+" (tanpa kutip), lalu beri nilai 100 pada kotak Value.

Sampai saat ini, nilai yang akan didapat pemain akan bertambah sebanyak 100 poin setiap kali mendapat sebuah koin. Namun pemain tidak akan mengetahui nilainya karena tidak tertera pada tampilan game. Untuk itulah dibutuhkan sebuah objek Text untuk menampilkan Skor tersebut. Objek Text tidak hanya untuk menampilkan skor semata, objek text juga dapat menampilkan beragam informasi untuk pemain misalnya jumlah nyawa, jarak yang harus ditempuh dan lain sebagainya.

Untuk menambahkan sebuah objek text, caranya sama dengan menambahkan objek lainnya, namun  pada saat memilih jenis objek, pilih jenis Text pada window yang muncul.

Gambar 8
Jika ekstensi objek Text belum terpasang pada projek anda, akan ada pertanyaan untuk mengaktifkan ekstensi tersebut, klik Yes saja.
Pada window "Edit the text object" yang muncul kemudian, biarkan jenis dan ukuran font yang dipakai, pilih warna hitam atau warna apa pun kesukaan anda, asal tulisan akan nampak jelas nantinya, lalu pertebal tulisan dengan klik huruf B (Bold). Ketik "Skor: 0" (tanpa kutip) sebagai tulisan baku saat objek text tersebut mucul pertama kali di layar (opsional).

Gambar 9
Jika anda mencoba menjalankan game anda sekarang, Tulisan itu seharusnya sudah nampak di layar, namun belum bertambah ketika koin diambil dan yang paling penting, tulisan tersebut tidak mengikuti pergerakan kamera.

Untuk mngatur agar tulisan tetap nampak di layar, anda harus menambahkan sebuah layer baru, caranya dengan klik Tab "Scene" pada menu bar paling atas pada window GDevelop, lalu klik "Layers editor" di bawahnya. Pada window "Layers editor" yang muncul, anda akan lihat sudah ada 1 layer yaitu "Base layer". Layer ini adalah layer bawaan di mana semua objek yang telah anda buat sebelumnya diletakkan. Pada layer ini, kamera mengikuti objek karakter agar objek tersebut tetap terlihat di layar, dan itulah mengapa objek text tetap diam di tempat.

Klik + pada window "Layers editor" untuk menambah sebuah layer baru, jika anda ingin memberi nama atau mengubah propertinya, dobel klik layer baru tersebut dan ubahlah sesuai dengan kebutuhan, namun saat ini saya rasa tidak perlu mengubah apapun kecuali nama. Saya memberi nama HUD (Heads Up Display) pada layer ini, nantinya layer ini untuk menyimpan tulisan Skor, jumlah nyawa dan informasi lainnya.
Pindahkan layer HUD ini dengan cara klik layer HUD tersebut lalu klik gambar panah atas atau bawah. Letakkan layer HUD ini ke tempat paling atas agar semua informasi tidak tertutup oleh objek dari layer lainnya, jadi seperti ini:

Gambar 10
Tutup window "Layers editor" ini dan kembali ke Scene editor.
Klik kanan pada objek text skor yang tadi anda buat, lalu pilih "Put the object(s) on the layer HUD" (atau nama layer yang anda buat tadi). Posisikan objek text tersebut agar berada pada lokasi yang enak dilihat pada layar (ukuran layar ditandai dengan sebuah kotak bergaris tipis pada scene editor).

Sekarang langkah terakhir dari bagian ini adalah memperbarui teks yang ditampilkan setiap kali karakter anda mengambil sebuah koin atau apapun yang menambah jumlah total skor.
Ada 2 cara yang bisa dilakukan, cara pertama adalah dengan memperbarui (update) teks setiap kali karakter bersentuhan dengan koin atau membunuh musuh, jadi anda harus menambahkan satu action baru pada saat terjadi collision dengan koin, satu action saat karakter membunuh musuh, dan lain sebagainya. Jadi intinya, anda harus menambah banyak Actions pada event editor anda.
Cara kedua adalah dengan menambahkan 1 action baru untuk memperbarui teks tanpa perlu sebuah condition seperti saat kita mengatur kamera untuk mengikuti objek karakter.
Saya akan pakai cara kedua ini, karena lebih sederhana dan tidak perlu mengubah terlalu banyak event yang sudah ada.
Buka event editor dan gerakkan mouse anda ke atas action dimana anda mengatur kamera untuk mengikuti objek karakter, tulisannya adalah "Center camera on (nama karakter anda) (layer: , camera: )", klik "Add an action" lalu pada window "Edit the action", buka folder "Text object" dan pilih "Modify the text".
Pada bagian kanan, pilih objek text yang ada buat tadi, pada kotak "Modification's sign", isi dengan tanda "=", lalu klik tombol txt untuk menyunting text yang akan dimunculkan nanti. Akan muncul window "Edit the text", ketik "Skor: " lalu tanda +, kemudian anda buka folder "Variables" pada kotak "Other function" di bagian kanan bawah, dan dobel klik pada "Global variables".

Gambar 11
Lalu kemudian pilih global variable "Skor" (atau apapun) yang tadi telah anda buat hingga nanti tulisan pada window "Edit the text" akan menjadi seperi ini:

Gambar 12
Pastikan tulisan di bawah kotak tersebut adalah "No errors", jika ada error, anda harus memperbaikinya dahulu atau game anda tidak akan bisa berjalan dengan benar. Klik Ok untuk menutup window dan kembali ke event editor.
Jika semuanya anda lakukan sesuai dengan yang saya tulis, maka event editor anda akan nampak seperti ini sekarang:

Gambar 13
Sekarang anda dapat mencoba menjalankan game anda, jika semuanya sudah benar, maka teks skor akan tetap tampil di layar tanpa terpengaruh oleh pergerakan kamera, juga sudah bertambah ketika objek karakter anda mengambil koin.

Gambar 14
Demikianlah pembahasan kita tentang menambahkan variable dan objek Text ke dalam projek GDevelop, semoga bermanfaat bagi kita semuanya. Pada kesempatan berikutnya saya akan membahas tentang menambahkan objek musuh dan memberinya "otak" untuk mengatur perilakunya.

Ikuti terus perkembangan dan nantikan artikel terbaru lainnya, juga jangan lupa untuk mengajak kerabat dan teman anda berkunjung kemari.

Terima kasih! :)

Tidak ada komentar :

Posting Komentar