• Tidak ada hasil yang ditemukan

Membuat Serangan Musuh (Batu Luar Angkasa)

Dalam dokumen Mudah Membuat Game dengan Unity3D (Halaman 73-94)

MODUL TINGKAT MENENGAH

F. Membuat Serangan Musuh (Batu Luar Angkasa)

Sebuah game akan seru kalau ada misi. Misi padagame ini adalah menembak batu-batu luar angkasa sebanyak mungkin. Setiap batu-batu yang kena akan mendapat skor +10. Pemain dianggap berhasil menyelesaikanLevel 1kalau mencapai skor 1000. Mari kita mulai membuatnya. Pada game ini kita menggunakan game object sphere

untuk batu luar angkasa. Langkahnya adalah sbb : - KlikGame Object > Create Other > Sphere

- Ubah pada jendelaInspectorsbb :

Transform

Position: x = 0, y = 0 dan z= 0

Rotation: x = 0, y = 0 dan z = 0

Scale: x = 1 Y = 1 dan z = 1 - KlikAssets > Create > Material

- Beri namaMaterialBatu

- Pilih warna merah, lalu dragMaterialBatuke dalamSphere

- KlikAssets > Create > Javascript

- Beri namaScriptBatu

- DragScriptBatu ke dalamSpherepada jendelaHierarchy

- Klik dua kaliScriptBatu,buatlahscriptsebagai berikut :

- Klik sphere, editBatu Speed menjadi5(boleh nilainya diubah 10)pada jendelaInspector

- TekanPlay! batu sekarang sudah bergerak menuju ke pesawat.

- Kalau posisi batu(sphere)masih di tengah, makadragke posisi sumbuy = 5.5

seperti pada gambar 2.66

Gambar 2.66 mengubah posisi batu(sphere)ke sumbu y=5.5

Masalah :

Persis seperti peluru, kita tidak menginginkan batu terus bergerak setelah keluar area permainan, karena program akan terus menerus memprosesnya. Oleh karena itu cek posisi batu ketika keluar dari area layar. Kemudian kita

berikanscriptuntuk mengembalikan posisi batu(sphere)ke koordinat semula ketika sudah melewati area layar permainan.

Perhatikan gambar 2.67

Gambar 2.67 men-drag spheresampai dapat koordinat seperti gambar 2.68 drag

Y = 5.5

Y = -5.5

Arah gerak batu

Setelah kita mendapatkan koordinat, maka langkah selanjutnya adalah menambahkanscriptsbb :

Ketika di-play posisi pergerakan batu monoton dalam satu alur lintasan saja. Jelas dalam sebuah game kondisi ini akan sangat membosankan. Oleh karena itu, kita perlu menambahkan script agar serangan batu tersebut random/acak posisinya. Berikutscript-nya :

Langkah selanjutnya adalah bagaimana caranya untuk deteksi tumbukan antara

sphere (batu luar angkasa) dengan cube (pesawat) si player ? atau deteksi tumbukkan antara peluru dengan batu? Sehingga ketika batu mengenai

player(cube), maka nyawa player akan berkurang, begitu juga ketika batu terkena tembakan peluru , maka batu akan hancur!

Inilah yang disebut collision detection. Selain collision detection, Unity

memudahkan kita dengan memberikanfasilitas tag dalam jendelaInspectoruntuk setiapgame object. Sehingga setiap game objectyang diberitag dapat dikenali oleh

game objectlain.

Lihat gambar 2.69 ketikaspherebelum diberitag

Gambar 2.69 Memberi tag pada game object

- Lalu KlikUntagged > Add Tag

- Beri namabatupadaElement 0

Gambar 2.69 memilih tag

- Klik lagisphere > batu

- Sekaranggame objectspheresudah memilikitagdengan namabatu

- Langkah selanjutnya, buka scriptPeluru.Js di jendela Project. Tambahkan

scriptsebagai berikut :

- Lalu klikSpherepada jendelaHierarchy

- pastikan di jendelaInspector, anda memberikan centang padaIs Trigger

- Berikan tanda centang juga pada peluruPrefab (game object peluru) dan

cube(game object batu)

Gambar 2.71 memberi tanda centang pada capsule dan box collider

Coba tekan play ! seharusnya setiap peluru yang ditembakkan mengenai sphere

(batu) maka nilai akan bertambah 10. Permasalahan :

Seharusnya, selain nilaiplayer bertambah, batu yang terkena tembakan pun hancur. Sedangkan sekarang tidak..!

Untuk menyelesaikannya, maka lakukan langkah sebagai berikut : - BukascriptPeluru.Js

- Tambahkan baris script untuk menghancurkan game object setelah script

menambah nilai :

Sehinggga ketika di-play maka game object batu (sphere) akan hilang/hancur sewaktu terkena peluru. Kemudian peluru lainnya akan muncul kembali secara random/acak.

Memberikan Efek Ledakan

Efek ledakkan akan diberikkan ketika peluru mengenai batu, sehingga gametampak lebih menarik. Langkahnya adalah sebagai berikut :

- KlikGame Object > Create Other > Particel System

- Ubah namanya menjadiLedakandi JendelaInspector

- Ubah pada jendelaInspectorsbb :

Transform

Position: x = 0, y = 0 dan z= 0

Rotation: x = 0, y = 0 dan z = 0

Scale: x = 1 Y = 1 dan z = 1

- Berikan nilai seperti pada gambar 2.72 (perhatikan detail nilai-nilai nya)

Gambar 2.72 Mengatur parameter partikel pada jendela Inspector

Langkah selanjutnya adalah membuatprefabuntuk ledakkan. - KlikAssets > Create > Prefab

- Ubah namanya menjadi ledakanPrefab

- Drag ledakandi jendelaHierarchykedalamLedakanPrefabdi jendela

Project

Gambar 2.73 Men-drag ledakan kedalam ledakanPrefab

- Laludeleteledakandi jendelaHierarchy

- Langkah berikutnya adalahinstantiateledakkan terhadappeluruPrefab. - Klik dua kaliScriptPeluru.js

- Tambahkanscriptsebagai berikut :

drag

Menambahkan Audio pada ledakkan

Supaya permainan lebih seru, tambahkan efek suara ketika terjadi ledakkan. Ikuti langkahnya :

- Cari suara bom untuk efek ledakkan, simpan di folderassets/sound.

- KlikledakanPrefab

- KlikComponent > Audio > Audio Source

- Dragcarbomb.wavke dalam Audio Clip

Gambar 2.74 Men-drag audio kedalam Audio Clip di Jendela Inspector

- CobaPlay!

Mengurangi Nyawa Player dan Membuat Menu Kalah

Pada bagian awal, kita sudah menentukan aturan game yaitu, jika peluru mengenai

player, maka nyawa akan berkurang. - BukascriptPlayer.Js

- Tambahkan baris sebagai berikut :

OK, coba tekanPlay! lalu coba biarkan batu(sphere)mengenai player(cube)

Masalah :

Nyawa yang diberikan sebanyak 3, sehingga apabila terkena serangan batu sebanyak tiga kali, seharusnya player dianggap kalah. Yang terjadi sekarang adalah, nilai nyawa teus berkurang menjadi dari 3 menjadi 2, 1, 0, -1, -2 dst ..padahal kita menginginkan ketika nyawa =0 maka permainan berakhir (game over)!

Solusi :

- Buatscenebaru, klikFile > New Scene

- Savedengan namasceneKalah

- Buat Script baru, KlikAssets > Create > Javascript

- Ubah dengan namascriptKalah

- Edit denganscriptsebagai berikut :

- Buatgame objectkosong dengan cara klik Game Object > Create Empty

- Drag scriptKalah di jendela project ke dalam GameObject di jendela

Hierarchy(lihat gambar 2.75)

Gambar 2.75 insert scriptKalah kedalam empty game Object di sceneKalah

Sebelum melanjutkan, pastikanbuild settingsebagai berikut :

Gambar 2.76 Build Setting drag

Langkahnya adalah :

- KlikFile > Build Setting

- Draglevel1.unitydansceneKalah.unity keScenes In Build

Gambar 2.78 Mengurutkan scene pada build setting.

Langkah selanjutnya adalah menghubungkan level1 dengan sceneKalah, caranya adalah :

- Klik dua kaliscriptPlayer.js

- Tambahkanscriptsbb :

Artinya, jika nyawa player kurang atau sama dengan nol, maka load sceneKalah

drag

Nama scene yang di-load di script

Membuat Menu Awal

Langkahnya sama ketika membuat menu untukscenekalah, yaitu sbb : - Buatscenebaru, klikFile > New Scene

- Savedengan namasceneAwal

- Buatscriptbaru, KlikAssets > Create > Javascript

- Ubah dengan namascriptAwal

- Editdenganscriptsebagai berikut :

- KlikGame Object > Create Empty

- DragScriptAwalkedalam emptyGame Object

Gambar 2.79 men-drag scriptAwal kedalam empty game object

Langkah selanjutnya adalah :

- KlikFile > Build Setting

- DragsceneAwal kedalamBuild Setting

Gambar 2.80 men-drag sceneAwal kedalam build setting

- Savepekerjaan Anda !

Membuat Menu Menang

Langkahnya sama ketika membuat menu untukscenekalah, yaitu sbb : - Buatscenebaru, klikFile > New Scene

- Savedengan namasceneMenang

- Buatscriptbaru, KlikAssets > Create > Javascript

- Ubah dengan namascriptMenang

- Editdenganscriptsebagai berikut :

- KlikGame Object > Create Empty

- DragScriptMenangke dalamempty Game Object

- KlikFile>Build Setting

- DragSceneMenangke dalamScene In Build

Gambar 2.81 men-drag sceneMenang kedalam build setting

Tambahkanscriptsbb padaplayerscript.Js, Anda mengerti maksudnya bukan ? :

Langkah terakhir sebelum game di-build..ubah urutan sbb, agar pada saatgame

dimainkan,sceneAwalyang di-load terlebih dahulu..!

Gambar 2.82 Mengurutkan scene yang sesuai kedalam build setting

OK .tutorial utama membuatGame Petualangan Angkasadianggap selesai. Tahap berikutnya adalah memoles game ini agar lebih real dan menarik. Ada tiga

komponen yang ditambahkan padagameini yaitu : - Penambahan GUI Texture untuk setiap menu;

- Penambahan benda-benda luar angkasa dengan partikel;

- Penggantian model pesawat daricube menjadi Model Pesawat yang dibuat di software 3D modeling, dalam contoh ini menggunakan3D Max.

Ubah urutan scene dengan cara di-drag, misalnya sceneAwal di-drag dari urutan 2 menjadi urutan 1

Supaya terlihat perbandingannya berikutcapture gamesebelum di tambahkan ketiga komponen diatas :

Gambar 2.83 Game sebelum diganti modeling-nya

Ikuti langkahnya sebagai berikut :

- Buat modeling pesawat di 3D Max atau blender, atau anda dapat mencari model yang gratis di Internet.

- Export model pesawat menjadi format*.fbx, misalnyaSimpelShip.fbx

- Simpan kedalam folderAssetsbersama material yang dipakainya.

- Klik Cube, lalu pilih Mesh (ingat kuncinya di mesh ini !) kita akan mengganti mesh cube menjadi mesh pesawat.

- GanticubemenjadipolySurface1

Gambar 2.85 penggantian mesh cube menjadi pesawat (polysurface)

- Langkah penting selanjutnya adalahsesuaikan ukuan pesawat.

- Laluhapusbox colliderdi jendelaInspectordenga caraklik kanan>remove

Klik untuk mengganti material Klik untuk mengganti mesh Sesuaikan ukuran pesawat

- Tambahkanmesh colliderdengan cara klikcomponent > physics > mesh collider.Artinyabox collidersudahtidak dipakai lagi diganti menjadimesh collideruntuk deteksi tumbukkannya, karena obyeknya sudah diganti dari

box (cube)menjadipesawat.

Urusan mengganti model sudah selesai, tahap selanjutnya yaitu menambahkan simulasi benda-benda angkasa lainnya dengan partikel. Caranya :

- Klik dua kali scenelevel1

- KlikGame Object > Create Other > Particel Systems

- Atur parameter pada jendelainspectorsbb :

Gambar 2.86 Menambahkan partikel di level1 (area permainan)

Polesan terakhir adalah menambahkan GUI Texture di setiap scene. Langkahnya adalah :

- Buat tiga buah gambar di photoshop dengan ukuran 1024 x 768 pixel sebagai berikut, simpan dalam format*.jpeg.

- Gambar ini hanya contoh saja, Anda dapat membuat versi lain yang lebih bagus !

Selanjutnya adalah simpan ketiga gambar tersebut di folder Assets. Untuk memasukkan tekstur kedalamscene, ikuti langkah sbb :

- Klik dua kalisceneAwal

- KlikGame Object > Create Other > GUI Texture

Gambar 2.88 Menambahkan GUI Texture

- KlikTexturedi Jendelainspector, lalu pilih file awal.jpeg. - Ubahscalemenjadi x = 1 dan y = 1

- Selesai !

Klik disini

Pilih texture awal.jpeg

Dalam dokumen Mudah Membuat Game dengan Unity3D (Halaman 73-94)

Dokumen terkait