Pac-Man adalah sebuah permainan arkade yang dikembangkan Namco dan diterbitkan Midway; dirilis di Jepang pada 22 Mei 1980. Awalnya dirilis di arkade saja, Pac-Man yang masih populer hingga kini telah dirilis pula dalam platform lainnya seperti Game Boy dan SNES. Perancang permainan ini adalah Toru Iwatani, yang merupakan karyawan Namco.
Pemain harus mengontrol tokoh berwarna kuning bernama Pac-Man dan membawanya mengelilingi lorong berlika-liku sambil "memakan" titik-titik kecil dan benda-benda khusus lainnya. Pada saat yang sama, terdapat empat "hantu" yang berkeliling di lorong tersebut yang bertugas menangkap Pac-Man. Sang pemain dapat menyelesaikan satu level (tingkat) jika berhasil memakan seluruh titik dan benda khusus. Secara teori, permainan dapat terus berlanjut tanpa batasan tingkat, namun tingkat ke-256 memiliki bug yang menyebabkan gambar di layar tidak beraturan dan karena itu Pac-Man tidak dapat terus dimainkan melewati tingkat tersebut.
Pac-Man kini dianggap sebagai salah satu permainan video klasik serta merupakan salah satu ikon tahun 1980-an. Salah satu alasan kesuksesannya adalah bentuk permainannya yang dapat digemari baik pria maupun wanita dibandingkan dengan permainan arkade lainnya sebelum Pac-Man seperti Space Invaders dan Defender yang merupakan permainan tembak-tembakan.
ALAT DAN BAHAN
Unity 5.0
RUMUSAN MASALAH
RUMUSAN MASALAH
Membuat game dengan gameplay seperti game pacman dengan unity
PEMBAHASAN
Dalam game ini terdapat 3 hal utama yang harus ada dalam pacman yaitu
PEMBAHASAN
Dalam game ini terdapat 3 hal utama yang harus ada dalam pacman yaitu
a. Arena
b. Player
c. Enemy
d. Internal Ekonomi Game (Objek)
Untuk mempermudah bahasan maka akan kita perinci satu persatu bagian yang membangun dari game yang akan kita bangun
a. Arena
Untuk mempermudah bahasan maka akan kita perinci satu persatu bagian yang membangun dari game yang akan kita bangun
a. Arena
Untuk membentuk arena yang kita butuhkan maka kita perlu membuat plane sebagai ground dari maze atau labirin yang kita buat.
sedangkan untuk membentuk maze atau labirinya maka kita perlu membangun bentuk nya dengan menggunakan cube yang kita modifikasi ukuran dan kita atur sesuia dengan kebutuhan kita. seperti berikut
b. Player
Pada game pacman, player yang kita gerakan akan bergerak melewati maze yang sebelumnya telah kita buat. Kita mengkontrol dengan menggunkan keyboard, script dibawah ini bisa kita masukan untuk meberikan pergerakan player. Player yang kita gunakan disini masih menggunakan object 3D berupa sphere
=================================================================================
=================================================================================
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
private Rigidbody rb;
public float speed;
public float count;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
void FixedUpdate() {
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal,0f,moveVertical);
rb.AddForce(movement * speed);
}
void OnTriggerEvent(Collider other){
if(other.gameObject.CompareTag("Pick Up"));
{
other.gameObject.SetActive(false);
count = count + 1;
}
}
}
using System.Collections;
public class PlayerController : MonoBehaviour {
private Rigidbody rb;
public float speed;
public float count;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
void FixedUpdate() {
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal,0f,moveVertical);
rb.AddForce(movement * speed);
}
void OnTriggerEvent(Collider other){
if(other.gameObject.CompareTag("Pick Up"));
{
other.gameObject.SetActive(false);
count = count + 1;
}
}
}
=================================================================================
c. Enemy
Sesuai dengan game pacman bahwasannya enemy yang terdapat dalam game ini akan selalu mengejar dimanapun posisi player berada dan enemy akan selalu mencari jarak terdekat menuju player. Untuk memberikan AI pada enemy yang kita lakukan adalah sbb:
Sesuai dengan game pacman bahwasannya enemy yang terdapat dalam game ini akan selalu mengejar dimanapun posisi player berada dan enemy akan selalu mencari jarak terdekat menuju player. Untuk memberikan AI pada enemy yang kita lakukan adalah sbb:
a. Buatlah enemy dari 3D Object semisal berupa sphere namun dengan material warna yang berbeda
b. Setelah itu multiple klik object meliputi player, obstacle, enemy dan plane lalu kita lakukan bake pada tab navigation
c. Maka otomatis akan ada jendela window save as dari bake ini, yang mena memberikan navmesh untuk enemy
d. Masukan script berikut kedalam enemy
b. Setelah itu multiple klik object meliputi player, obstacle, enemy dan plane lalu kita lakukan bake pada tab navigation
c. Maka otomatis akan ada jendela window save as dari bake ini, yang mena memberikan navmesh untuk enemy
d. Masukan script berikut kedalam enemy
=================================================================================
using UnityEngine;
using System.Collections;
public class Catcher : MonoBehaviour {
public Transform Goal ;
private NavMeshAgent NavComponent;
// Use this for initialization
void Start () {
NavComponent = this.transform.GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
if(Goal){
NavComponent.SetDestination(Goal.position);
}
}
}
using System.Collections;
public class Catcher : MonoBehaviour {
public Transform Goal ;
private NavMeshAgent NavComponent;
// Use this for initialization
void Start () {
NavComponent = this.transform.GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
if(Goal){
NavComponent.SetDestination(Goal.position);
}
}
}
=================================================================================
d. Internal Ekonomi Game
didalam ini akan diatur kondisi menang, kondisi kalah dan penentuan skor dari game ini
* Penambahan skor disini akan dilakukan ketika player menabrak objek berupa box yang tersebar diarena permainana setiap berhasil menabrak objek ini maka skor akan selalu bertambah 10 point . Berikut Script yang digunakan untuk mengatur kondisi ketika player menabrak objek box
didalam ini akan diatur kondisi menang, kondisi kalah dan penentuan skor dari game ini
* Penambahan skor disini akan dilakukan ketika player menabrak objek berupa box yang tersebar diarena permainana setiap berhasil menabrak objek ini maka skor akan selalu bertambah 10 point . Berikut Script yang digunakan untuk mengatur kondisi ketika player menabrak objek box
=================================================================================
void OnTriggerEvent(Collider other){
if(other.gameObject.CompareTag("Pick Up"));
{
other.gameObject.SetActive(false);
count = count + 10;
}
}
if(other.gameObject.CompareTag("Pick Up"));
{
other.gameObject.SetActive(false);
count = count + 10;
}
}
=================================================================================
kemudian akan kita tampilkan skor yang sebelumnya telah kita proses, dengan script sbb
=================================================================================
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class ScoreOb : MonoBehaviour {
public Text scoreText;
public Text wintext;
private int score;
void Start(){
score = 0;
UpdateScore_HP ();
}
public void AddScore (int newScoreValue)
{
score += newScoreValue;
UpdateScore_HP ();
}
void UpdateScore_HP ()
{
scoreText.text = score.ToString();
}
void Update(){
if (score == 100) {
Application.LoadLevel("won");
//wintext.text = "YOU WIN !";
}
}
}
using UnityEngine.UI;
using System.Collections;
public class ScoreOb : MonoBehaviour {
public Text scoreText;
public Text wintext;
private int score;
void Start(){
score = 0;
UpdateScore_HP ();
}
public void AddScore (int newScoreValue)
{
score += newScoreValue;
UpdateScore_HP ();
}
void UpdateScore_HP ()
{
scoreText.text = score.ToString();
}
void Update(){
if (score == 100) {
Application.LoadLevel("won");
//wintext.text = "YOU WIN !";
}
}
}
=================================================================================
* Setelah itu kondisi menang akan dapat ditentukan jika semua objek box berhasil kita tabrak semuanya dengan menggunakan script sbb
=================================================================================
=================================================================================
* Setelah itu kondisi kalah akan dapat ditentukan jika enemy berhasil menabrak player dengan menggunakan script sbb
=================================================================================
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class meetCatcher : MonoBehaviour {
public Text losetext;
void OnTriggerEnter(Collider other){
if(other.gameObject.tag=="Player"){
Application.LoadLevel("gameover");
losetext.text = "YOU LOSE !";
Destroy(other.gameObject);
}
}
}
using UnityEngine.UI;
using System.Collections;
public class meetCatcher : MonoBehaviour {
public Text losetext;
void OnTriggerEnter(Collider other){
if(other.gameObject.tag=="Player"){
Application.LoadLevel("gameover");
losetext.text = "YOU LOSE !";
Destroy(other.gameObject);
}
}
}
=================================================================================
Untuk melihat full game dari hasil pembuatan game ala pacman dapat didownload pada URL berikut
Untuk melihat full game dari hasil pembuatan game ala pacman dapat didownload pada URL berikut
Tidak ada komentar:
Posting Komentar