PAC-MAN WANNA BE
Prakata
Permainan legendaris Pac-man merupakan salah satu game arcade dengan penjualan terbesar pada masa debutnya. lebih dari 100.000 Pac-man mesin yang dibuat dan dijual di seluruh dunia. Pac-man pertama kali dikembangkan oleh Namco dan diterbitkan oleh Midway di Jepang pada 22 Mei 1980. Sejak dirilis
sampai saat ini game Pac-man mengalami banyak perkembangan dan inovasi. Salah satu bentuk perkembangan dari game ini adalah dirilisnya game Pac-man di platform Game Boy dan SNES yang dirancang oleh Toru Iwatani yang merupakan karyawan di Namco.
Cara bermain game Pac-man sendiri sangat mudah. Pemain atau palyer harus mengontrol karakter Pac-man (bulat berwana kuning) untuk memakan dot-dot atau titik-titil sekaligus menghindari dari
tangkapan para hantu. Namun pemain (Pac-man) dapat memakan hantu-hantu yang mengejarnya
ketika Pac-man memakan dot yang ukurannya lebih besar. Pemain akan memenangkan permainan ini ketika semua dot berhasil dihabiskan.
Alat dan perangkat
Kali ini akan menjelaskan bagaimana cara membuat game Pac-man wanna be.Alat dan perangkat
yang digunakan adalah :
- Dapat mengguanakn PC atau laptop
- software Unity 5.01
- software Blender (untuk modeling).
Pembuatan
Dalam pembuatan game Pac-man wanna be ini mengguanakan asset package 3D dan pada prosesnya dibagi menjadi beberapa tahapan. Dan berikut tahapannya :
1. Pembuatan Arena(labirin/maze)
2. Karekter
A. Pac-man
B. Hantu
3. Score
A. Dot/titik titik
B. Kalah dan Menang
1. ARENA
Masuk tahapan pertama, yaitu pembuatan arena. Untuk membuat arena dapat menggunakan blender
kemudian import file.blend kedalam unity. Atau langsung membuat dalam unity sendiri menggunakan
object object yang sudah disediakan oleh unity. Labirin tersebut dibuat menggunakan software Blender.
Untuk membuat maze/labirin dalam Unity.
A. GameObject ->3D Object -> plane : untuk membuat plane atau lantai.
B. Untuk membuat wall GameObject ->3D Object->cube.
Membuat hantu agar mengejar Pac-man juga diatur dalam arena. Klik window -> Navigation.
Lakukan tahapan ini setelah maze/labirin selesai dibuat. Setelah Navigation diklik atau dipilih,
biasanya akan muncul dibagian kanan unity bersebelahan dengan Inspector. Kemudian klik arena
yang sudah dibuat, klik Navigation. Atur pada bagian Objek untuk Walkable.
Informasi : Pada bagian bake terdapat agent radius. Agent radius ini digunakan untuk mengatur area
not walkble dihitung dari wall labirin.Navigation area sudah diset Walkable kemudian klik Bake
(dibagian bawah area Navigation).
2. KARAKTER
Sama dengan pembuatan arena. Untuk mebuat karakter Pac-man maupun hantu bisa menggunakan
blender atau langsung di Unity. Untuk di untiy klik GameObject->3D Object, pilih bentuk yang
diinginkan sebagai hantu dan sebagai Pac-man.
A. Pac-Man
Di bagian ini akan dibahas script bagaimana Pac-man ini dapat dikontrol.
- Buat variabel untuk menampung kecepatan bergerak Pac-man dengan tipe integer(int).
- Pada void Update, beri kondisi bagaimana Pac-man dapat berjalan ke kanan-kiri dan atas-bawah.
=========================================================================
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Pemain : MonoBehaviour {
using System.Collections;
using UnityEngine.UI;
public class Pemain : MonoBehaviour {
public int move; //VARIABEL UNTUK MENAMPUNG KECEPATAN PAC-MAN
void Start () {
}
void Update () {}
if ((Input.GetAxis ("Vertical")) > 0) {
transform.Translate (new Vector3 (0,0, move*Time.deltaTime));
}//BERGERAK KE ATAS
if ((Input.GetAxis ("Vertical")) < 0) {
transform.Translate (new Vector3 (0,0, - ( move*Time.deltaTime)));
}//BERGERAK KE BAWAH
if ((Input.GetAxis ("Horizontal")) > 0) {
transform.Translate (new Vector3 (( move*Time.deltaTime),0,0));
}//BERGERAK KE KANAN
if ((Input.GetAxis ("Horizontal")) < 0) {
transform.Translate (new Vector3 (-( move*Time.deltaTime),0,0));
}//BERGERAK KE KIRI
}
}
=========================================================================
Kemudian sisipkan script pada objeck Pac-man. Dengan men-drag script ke inspector Pac-man atau
AddComponent tulis nama script dan klik.
B. Hantu/Ghost.
Langsung pada script.
=========================================================================
using UnityEngine;
using System.Collections;
public class Musuh : MonoBehaviour {
public Transform target;
private NavMeshAgent navComponent;
void Start () {
target = GameObject.FindGameObjectWithTag ("Player").transform;//PENETUAN TARGET
navComponent = this.gameObject.GetComponent<NavMeshAgent>();//MEMBERIKAN NAVMESH AGENT
}
// Update is called once per frame
void Update () {
if (target) {
navComponent.SetDestination (target.position);//MENGATUR KEMANA MUSUH AKAN PERGI
} else {
target = this.gameObject.GetComponent<Transform>();
}
}
}
using System.Collections;
public class Musuh : MonoBehaviour {
public Transform target;
private NavMeshAgent navComponent;
void Start () {
target = GameObject.FindGameObjectWithTag ("Player").transform;//PENETUAN TARGET
navComponent = this.gameObject.GetComponent<NavMeshAgent>();//MEMBERIKAN NAVMESH AGENT
}
// Update is called once per frame
void Update () {
if (target) {
navComponent.SetDestination (target.position);//MENGATUR KEMANA MUSUH AKAN PERGI
} else {
target = this.gameObject.GetComponent<Transform>();
}
}
}
=========================================================================
Script untuk musuh sudah dibuat kemudian sisipkan script tersbut pada objek hantu menggunakan cara
yang sama dengan mnyisipkan script ke Pac-man. Setelah script hantu masuk, tanbahkan Nav Mesh Agent pada Inpector hantu. Nav Mesh Agent ini berfungsi untuk mengaktifkan Navmesh yang ditanamkan ke object hantu melalui script. Kemudian slot script pada inspector drag object Pac-man
pada kolom target yang ada pada slot script.
3. SCORING dan MENANG/KALAH.
A. Dot (Titik) dan Scoring.
Sebelumnya buat sebuah objek yang digunakan sebagai dot/titik. Pada project ini ada 2 tipe dot. Yaitu dot yang berbentuk donat/torus dan chery. Keduanya memiliki nilai yang berbeda untuk dot berbentuk donat hanya bernilai 1 point sedangkan dot berbentuk chery memiliki 5 point. Untuk menyerupai game Pac-man yang asli. Ketika Pac-man memakan dot, maka dot itu akan hilang. Untuk membuat seperti itu buat script yang mengkondisikan ketika object Pac-man berkolider atau bertubrukan dengan dot maka dot hilang.Setelah dot dapat menghilang/destroy buat kondisi ketika object dot menghilang maka score bertambah. Berikut scriptnya.
=========================================================================
void OnTriggerEnter(Collider other){
if (other.gameObject.CompareTag ("Pick Up")) {
other.gameObject.SetActive(false);//OBJECT DENGAN TAG "PICK UP" DESTROY
Count += 1;//PENAMBAHAN PADA SCORE
SetCountText ();//MENAMPILKAN SCORE
}//SCRIPT UNTUK DONAT/TORUS
if (other.gameObject.CompareTag ("Pick Up")) {
other.gameObject.SetActive(false);//OBJECT DENGAN TAG "PICK UP" DESTROY
Count += 1;//PENAMBAHAN PADA SCORE
SetCountText ();//MENAMPILKAN SCORE
}//SCRIPT UNTUK DONAT/TORUS
if (other.gameObject.CompareTag ("Bonus")) {
other.gameObject.SetActive(false);
Count +=5;
SetCountText ();
}//SCRIPT UNTUK CHERY
other.gameObject.SetActive(false);
Count +=5;
SetCountText ();
}//SCRIPT UNTUK CHERY
}
=========================================================================
Karena pada script membutuhkan sebuah object yang ber-tag “Pick Up”. Buat dot dot yang sudah siap ber-tag “Pick Up”. Pada inspector bagian atas terdapat slot dengan tag. Ubah “untag” menjadi “Pick Up”. Jika tidak tag untuk “Pick Up” tidak tersedia klik Add Tag, klik tanda (+) kemudian tulis “Pick Up”. Buat semua dot ber-tag “Pick Up”.
Buat objet text. Dari Game -> UI -> text. Atur text agar rapi dan terlihat. Kemudian sisipkan object text pada slot scipy untuk meampilan score.
B. Menang/Kalah.
Kalah.
Sama halnya dengan membuat score. Dalam game Pac-man asli ketika Pac-man tertangkap oleh hantu maka pemain kalah. Jadi buat sebuah kondisi dimana ketika ibject Pacman tertangkap hantu kalah.
=========================================================================
if (other.gameObject.CompareTag ("Musuh")) {
Application.LoadLevel("Lose");
}
==========================================================================
Application.LoadLevel("Lose");
}
==========================================================================
Cara pembuatan tag “Musuh” sama dengan pembuatan tag “Pick Up”.
Menang
Buat batas maksimum perolehan score
=========================================================================
using UnityEngine;
using System.Collections;
public class Score : MonoBehaviour {
public int scores;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (scores == 50) {//BATAS MAX SCORE
Application.LoadLevel("WinScene");
}
}
}
=========================================================================
using System.Collections;
public class Score : MonoBehaviour {
public int scores;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (scores == 50) {//BATAS MAX SCORE
Application.LoadLevel("WinScene");
}
}
}
=========================================================================
Untuk meminimkan pengganaan memori jadikan semua script pada script pemain. Kenapa? Karena akan lebih efisien. Kecuali scripy untuk musuh.
untuk melihat hasil percobaan dan srcipt. silahkan download di sini