Senin, 07 November 2016

Tutorial GDevelop Bahasa Indonesia Bagian 9: Menambahkan rintangan mematikan

Sebuah game, tidak akan seru kalau tidak ada tantangan dan bahayanya. Anda pasti tidak akan suka jika sebuah game hanya loncat kesana kemari tanpa ada resiko untuk terluka atau mati, karena hal tersebut pasti sangat membosankan. Untuk itu kita akan belajar menambahkan sedikit bahaya pada game yang kita buat agar permainan menjadi lebih menantang dan menarik.

Ada dua jenis bahaya yang bisa kita tambahkan yaitu rintangan (obstacles) dan musuh (enemies, bad guys). Rintangan biasanya berbentuk benda mati namun mematikan, misalnya duri, lahar panas atau sejenisnya. Rintangan umumnya tidak bergerak, kalaupun bergerak, mereka tidak memiliki "pikiran" untuk menyerang pemain. Berbeda dengan objek musuh, mereka biasanya berbentuk makhluk hidup atau robot, mereka bisa diam atau bergerak dan memiliki "pikiran" untuk mengejar, menyakiti bahkan membunuh karakter lakon, tergantung sifat dari karakter musuh tersebut.



Kita akan menambahkan 1 jenis rintangan dan 1 jenis musuh sederhana. Rintangannya berbentuk besi runcing yang diletakkan di dasar sebuah lubang, jadi jika pemain terjatuh ke dalam lubang tersebut, nyawanya berkurang dan harus mengulang level tersebut. Sedangkan musuhnya berbentuk seekor serangga beracun yang berjalan kesana kemari, jika tersentuh maka pemain akan kehilangan nyawanya.

Pertama, siapkan gambar rintangan, jika anda belum punya gambarnya atau ingin menggunakan gambar yang saya gunakan di dalam tutorial ini, anda dapat mengunduhnya disini.
Setelah anda memiliki gambarnya, tambahkan sebuah objek baru, pilih jenis "Sprite" dari pilihan jenis objek dan beri gambar pada animation 0. Objek ini tidak memerlukan behavior, karena tidak melakukan apapun. Beri nama "Duri" atau apapun yang anda suka,  biasakan memberi nama pada objek baru yang anda tambahkan agar tidak membuat bingung nantinya. Lalu tambahkan beberapa objek Duri tersebut dan letakkan di tempat yang anda inginkan. Perlu diingat, meletakkan rintangan atau musuh harus dengan perhitungan, anda harus memberi pemain kesempatan untuk bisa lolos dari maut, jika tidak ada kesempatan untuk selamat, game anda akan menjadi mustahil untuk dikalahkan dan itu akan membuat pemain enggan memainkannya.
Jangan lupa untuk menempatkan objek Duri tersebut pada Base layer, caranya adalah dengan klik kanan objek duri tersebut dan pilih "Put the object(s) on the lower layer"

Dalam tutorial kali ini, saya meletakkan duri di dasar lubang, jadi apabila karakter lakon jatuh ke dalam lubang tersebut akan berkurang nyawanya, dan apabila nyawa karakter lakon telah habis, game akan berakhir.

Tambahkan 1 scene baru, untuk menyatakan bila si lakon telah mati dan bersiap untuk mengulang level. Beri nama scene tersebut "mati", tambahkan 1 objek text, dan tulis keterangan bahwa objek karakter tersebut telah mati dan berkurang nyawanya.
pada event editor scene "mati" tersebut, tambah 1 event, "Add a condition", buka folder "Scene" dan pilih "At the beginning of the scene".
"Add an action", buka folder "Timers and time" lalu pilih "Reset a timer" dan pada bagian kanannya tulis "restart" (dengan tanda kutip).
Tambahkan event baru, "Add a condition", buka folder "Timers and time" lalu pilih "Value of a timer". Pada bagian kanannya, isi "Time in seconds" dengan angka 3 (atau berapa detik layar mati ini tampil sesuai dengan yang anda mau), dan ketik "restart" (dengan tanda kutip) pada kotak "Timer's name". Klik Ok.
"Add an action" pada event barusan, buka folder "Scene" dan pilih "Change the scene". Pada bagian kanannya, isi dengan nama scene level dimana permainan berlangsung, dan pada kotak "Stop any other paused scenes?" pilih true.
Jika semuanya benar, maka tampilan event editor pada scene "mati" tersebut akan nampak seperti ini:

Gambar 1
Ulangi langah di atas untuk menambah 1 scene baru, tapi sekarang beri nama scene tersebut "Game over", buat tulisan pada scene tersebut yang menyatakan jika game sudah berakhir (Game over). Untuk saat ini, events pada scene tersebut dibuat sama saja dengan scene "mati".

Setelah selesai membuat 2 scene tambahan, kembali ke scene level 1 dimana anda menambahkan objek duri tadi, klik kanan pada folder Project anda di kotak "Project manager", pilih "Modify global variables" untuk menambah 1 variable global baru. Pada window "Edit the variables (global variables)", klik + dan beri nama variable baru tersebut "Nyawa", lalu dobel klik variable "Nyawa" tersebut untuk mengganti nilai bakunya menjadi 3. Ini artinya kita memberi objek lakon 3 nyawa pada saat game dimulai. Klik Ok untuk menutup window "Edit the variables".

Tambahkan 1 variable lokal untuk objek lakon, caranya dengan menambah 1 event baru, "Add a condition", buka folder "All objects", buka folder "Variables" dan pilih "Value of an object's variable". Pada bagian kanan, pilih objek karakter anda, dan klik tombol di sebelah kotak "Variable" untuk memunculkan window "Choose a variable". Pada saat ini, objek karakter anda hanya memiliki 1 variable yaitu variable "melompat" yang dibuat pada tutorial bagian sebelumnya. Klik + untuk menambah 1 variable baru, beri nama "mati", biarkan nilainya tetap 0 dan klik variable mati tersebut lalu klik tombol "Choose".
Isi kotak "Sign of the test" dengan "=" (tanpa kutip), dan isi kotak "Value to test" dengan angka 1. Tujuan dari event ini adalah memeriksa apakah objek tersebut sudah mati, dan jika sudah mati (nilainya 1) maka jalankan aksi berikutnya, jika belum mati, lewati event ini.

Tambahkan sebuah sub-event pada event barusan, lalu "Add a condition", buka folder "Variables", buka folder "Global variables" dan pilih "Value of a global variable". Pada bagian kanannya, pilih variable "Nyawa" yang tadi anda buat, lalu pada kotak "Sign of the test", beri tanda "<=" (kurang dari sama dengan, tanpa tanda kutip) dan pada kotak "Value to compare", beri angka 0. klik Ok untuk menutup.
"Add an action", Buka folder "Audio", buka folder "Music on channels" dan pilih "Stop the music on a channel", pada bagian kanannya berikan nomor channel dimana anda menambahkan musik pada tutorial sebelumnya, lalu klik Ok.
"Add an action" sekali lagi pada event yang sama, buka folder "Scene" dan pilih "Change the scene". Pada bagian kanannya pilih scene "Game over" yang tadi anda buat, dan pada kotak "Stop any other paused scenes?" pilih True.
Event ini bertujuan memeriksa apakah nyawa lakon sudah habis? jika nilainya kurang dari atau sama dengan 0, maka ganti layar ke layar Game Over, dan game berakhir.

Tambahkan sebuah sub-event lagi, lalu "Add a condition", buka folder "Variables", buka folder "Global variables" dan pilih "Value of a global variable". Pada bagian kanannya, pilih variable "Nyawa" yang tadi anda buat, lalu pada kotak "Sign of the test", beri tanda ">" (lebih dari, tanpa tanda kutip) dan pada kotak "Value to compare", beri angka 0. klik Ok untuk menutup.
"Add an action", Buka folder "Audio", buka folder "Music on channels" dan pilih "Stop the music on a channel", pada bagian kanannya berikan nomor channel dimana anda menambahkan musik pada tutorial sebelumnya, lalu klik Ok.
"Add an action" sekali lagi pada event yang sama, buka folder "Scene" dan pilih "Change the scene". Pada bagian kanannya pilih scene "mati" yang tadi anda buat, dan pada kotak "Stop any other paused scenes?" pilih True.

Agar tidak bingung, jika anda melakukannya dengan benar, maka event editor anda nampak seperti ini setelah menambah event-event di atas:

Gambar 2
Kita lanjutkan membuat event dimana objek lakon bersentuhan dengan objek duri. Tambahkan sebuah event baru, "Add a condition", buka folder "All objects", buka folder "Collision" dan pilih "Collision". Pada bagian kanan, pilih objek karakter anda pada kotak pertama dan objek duri pada kotak kedua lalu klik Ok.
"Add a condition" sekali lagi, buka folder "All objects", buka folder "Variables" dan pilih "Value of an object's variable". Pada bagian kanan, pilih objek karakter anda, pilih variable "mati" pada kotak di bawahnya, "Sign of the test" diisi dengan tanda "=" (tanpa kutip) dan beri nilai 0 pada "Value to test". Klik Ok.

"Add an action" pada event ini, buka folder "Variables", buka folder "Global variables" dan pilih "Value of a global variable". Pada bagian kanan, pilih global variable "Nyawa", beri tanda "-" (minus/kurangi, tanpa tanda kutip) pada "Modification's sign" dan beri nilai 1 pada kotak "Value".

"Add an action" sekali lagi, buka folder "All objects", buka folder "Variables" dan pilih "Modify a variable of an object". Pada bagian kanan, pilih objek karakter anda, pilih variable "mati", beri tanda "=" pada "Modification's sign" dan beri nilai 1 pada kotak "Value". Klik Ok.

Pada event ini ada 2 kondisi yang harus diperiksa sebelum melakukan aksi yaitu kondisi apakah objek lakon bersentuhan dengan objek duri, dan apakah objek lakon masih hidup. Jika salah satu kondisi tersebut jawabannya "Tidak", maka tidak akan ada aksi yang dilakukan dan jika kedua jawabannya adalah "Ya", maka akan dilakukan aksi mengurangi "Nyawa" dan menyatakan karakter sudah mati ("mati" = 1).
Jika semuanya anda lakukan dengan benar, maka hasilnya seperti ini:

Gambar 3
Jika anda mencoba game anda sekarang, seharusnya setiap kali objek karakter anda bersentuhan dengan duri akan mati, musik berhenti, layar akan berganti ke scene "mati", dan nyawanya akan berkurang 1. Jika nyawanya habis (0), maka layar akan berganti ke scene "Game over".

Sampai disini pembahasan tentang menambahkan rintangan mematikan, untuk artikel selanjutnya saya akan menguraikan tentang menambahkan objek musuh sederhana yang dapat bergerak dan dapat dibunuh oleh objek karakter anda.

Semoga bermanfaat dan terima kasih sudah berkunjung! :)

Tidak ada komentar :

Posting Komentar