Membuat Game 2D Sederhana dengan Unity (Part 4)


2222-1-1024x535Pada tutorial sebelumnya kita sudah membuat batas-batas sampai mana player boleh bergerak. Pada tutorial kali ini kita akan menambahkan bola serta behaviournya pada scene.
Buka folder Sprites pada folder asset, kemudian drag & drop sprite Ball ke dalam scene atau ke dalam hierarchy sehingga menjadi sebuah objek game baru.

Selanjutnya kita akan menambahkan komponen-komponen fisik sehingga nanti bola akan bergerak sesuai fisik sesungguhnya.

Pilih objek Ball, kemudian tambahkan komponen Circle Collider 2D baru pada objek tersebut. Pastikan collider menyelimuti semua permukaan objek dengan tepat dengan mengatur radius. Aturlah Radius dengan memasukan angka 0.23 sehingga permukaan objek benar-benar tertutupi.

Tambahkan komponen fisik kedua, Rigidbody 2D pada objek Ball. Atur properties-nya seperti gambar diatas. Hit play untuk melihat apa yang terjadi pada objek bola. Ketika scene dalam keadaan Play seharusnya bola akan terjatuh kebawah (vertical) dengan kecepatan rendah, karena kita mengatur Mass = 0,1 dan Gravity = 1 maka objek bola akan bergerak mengikuti visualisasi gaya gravitasi dengan perbandingan berat massa 1/10.

Selanjutnya untuk membuat bola memantul atau Bouncing kita bisa menggunakan Physics Material 2D. Klik kanan pada folder Sprites kemudian pilih PhyscsMaterial2D, berinama BallBounce. Pada inspector atur properties nya menjadi friction = 0 dan Bounciness = 1. Fricton adalah variable gesekan antar collider (collision), biarkan saja 0, kemudian Bounciness adalah variable untuk pantulan objek, isikan angka 1 untuk membuat pantulan terlihat nyata.

Drag BallBounce yang telah kita buat tadi pada variable Materal dalam komponen Circle Collider 2D seperti gambar diatas. Hit play kemudian lihat apa yang terjadi, seharusnya bola memantul secara vertical mengikuti gravitasi. Karena yang kita inginkan bola tersebut memantul secara horizontal, maka ubah value Gravity pada komponen Rigdbody2D menjadi nol.
Selanjutnya kita akan membuat behaviour dari bola tersebut sehingga berfungsi layaknya bola pingpong pada umumnya. Silahkan tambahkan komponen script baru berapa javascript pada komponen bola dengan nama BallControl.
Pertama, kita akan membuat bola memantul secara random pada saat game pertama kali dimulai. Buat variable baru pada function Start() berupa random range dengan range antara 0 sampai 2. Variable ini akan membuat float secara random dari 0-2, kita bisa memanfaatkan randominasi tersebut untuk assign apakah bola memantul harus ke kanan atau kekiri ketika pertama kali game dijalankan. Buat statement if yang jika random range tersebut lebih kecil atau sama dengan 0,5 maka bola akan bergerak ke kanan pada saat pertama kali game dimulai. Gunakan Addforce seperti pada kode diatas. Statement else untuk menghandle logika sisanya, maka buatlah bola bergerak kekiri terlebih dahulu dengan menggunakan AddForce yang sama dengan kondisi minus. Karena kita telah men-set gravity = 0 dan juga telah menambahkan Bounciness, seharusnya ketika game dijalankan bola sudah bisa memantul ketika mengenai player ataupun wall dengan posisi bola random ketika game pertama kali dibuat. Namun Movement bola belum tampak real, sehingga perlu ditambahkan fungsi lain pada script tersebut.
fungsi OnCollisionEnter2D berfungsi untuk mendeteksi apakah collider mengalami tabrakan atau Collision dengan collider lain. Buat suatu kondisi dimana ketika Collider dalam bola ini menyentuh collider lain dengan tag Player, maka akan terjadi movement seperti pada kode diatas. Kode tersebut membuat gerakan bola memantul sesuai gerakan Player. Ketika kedua Player tidak digerakan dan mengenai masing-masing Player, maka bola hanya memantul dua arah secara stagnan. Namun ketika bola menyentuh collider Player sambil Player bergerak ke arah tertentu, maka bola akan memantul mengikuti impak pergerakan Player.

Save Script, kemudian set Tag semua Player menjadi ‘Player’ seperti gambar diatas. Kemudian hit Play untuk melihat apa yang terjadi. Dan ya, sepertinya secara garis besar bola sudah bergerak sebagaimana mestinya dalam permainan pingpong. Langkah selanjutnya adalah menambahkan score dan beberapa tweak sehingga gamenya lebih terlihat rapi. Stay tune!

Post a Comment