Algoritma Lompat Game Platform

November 10, 2011 § 2 Komentar

Charlie The Duck

Charlie The Duck

Dalam game, terutama yang bergenre platform, aksi lompatan adalah sebuah hal yang wajib ada. Bayangkan saja jika game seperti Super Mario Bros tidak memiliki fitur untuk melompat, bagaimana kita bisa memainkannya? Game tentu akan menjadi tidak menarik 😀

Pada artikel kali ini akan kita bahas tentang algoritma lompatan yang biasa ada di dalam game platform.

Jika mendengar lompatan, apa yamg ada di benak kalian semua? daya dorong? gravitasi? persamaan yang rumit? atau yang lain? Sekilas akan sangat rumit jika kita harus mengimplementasikan algoritmanya 😀 Dan memang benar akan rumit. Lalu bagaimana para game developer diluar sana mengimplementasikan hal serumit ini? Tentu ada cara lain yang sedikit lebih mudah daripada kita harus menggunakan persamaan tersebut.

Dalam game 2D, koordinat yang digunakan adalah koordinat x dan koordinat y (x,y). Kita sepakati saja bahwa koordinat (0,0) terletak di sudut kiri atas untuk memudahkan pemahaman. Untuk x, ke arah kanan x bernilai positif, dan ke arah kiri x bernilai negatif. Sedangkan untuk y, ke arah bawah y bernilai positif, sedangkan ke arah atas y bernilai negatif. Hal ini memang sedikit asing bagi yang belum pernah belajar pemrograman grafis.

Sebagai tambahan informasi saja, dalam pemrograman game 3D, juga terdapat beberapa macam cara memandang koordinat x,y,z.

Setelah kita sepakati tentang masalah koordinat, selanjutnya kita masuk ke logika berpikir. Karakter kita berdiri pada suatu platform di titik (x,y). Kemudian yang disebut melompat adalah menggeser koordinat y ke arah atas (-y) sampai pada titik tertentu, kemudian setelah mencapai titik tersebut kemudian kita menggeser koordinat y tadi ke arah bawah (y) dan mengembalikan karakter ke titik semula. Sudah menangkap gambarannya? Kalau belum silahkan dipahami lagi 🙂

Jika kita sudah memahaminya, kita lihat algoritma berikut ini yang saya tulis dalam bahasa C++:

#include <iostream>

using namespace std;

int main()
{
int yAwal            = 10; // posisi awal karakter
int yAkhir           = 0; // puncak tertinggi lompatan
int yVelocity        = -1; // percepatan
int posisiY          = yAwal; // akan digunakan untuk mengambil posisi y karakter
bool lompat          = true;

// selama masih dalam proses melompat, akan diulang terus menerus
while(lompat)
{
//posisi y akan ditambahkan dengan nilai yVelocity
posisiY += yVelocity;
cout<<"\nPosisiY = "<<posisiY;

if(posisiY == yAkhir)
{
//jika posisiY sudah sama dengan yAkhir, maka nilai yVelocity akan diubah menjadi positif
yVelocity = 1;
cout<<"\nUbah yVelocity";
}

if(posisiY == yAwal)
{
lompat = false;
}
}
return 0;
}

Jika kode tersebut dijalankan, maka program ini hanya akan menampilkan nilai dari variabel posisiY. Mungkin ada yang bingung kenapa hanya seperti ini dan bertanya dimana bagian lompatnya? Tapi dari sinilah bisa kita kembangkan menjadi sebuah proses melompat yang “utuh” dalam game yang sedang kita kembangkan. Misalnya kode tersebut akan dijalankan jika kita menekan tombol spasi. Atau mungkin kode tersebut kita tambah sehingga kita bisa melompat ke arah diagonal, ataupun yang lain. Semoga bisa bermanfaat.

Iklan

Tagged: , , , ,

§ 2 Responses to Algoritma Lompat Game Platform

Corat Coret

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

What’s this?

You are currently reading Algoritma Lompat Game Platform at Sekedar Catatan Kaki.

meta

%d blogger menyukai ini: