making a shooter game with flashpunk, part 5

Ada yang menyadari kalau judul artikel saya hari ini beda dari biasanya? Pertama, saya menggunakan bahasa Inggris sepenuhnya, bukan hanya satu frase. Kedua, ada akhiran part 5. Ini memang bagian kelima dari tutorial berseri saya, sebelumnya saya sengaja tidak memberi angka di artikel saya, cuma buat tampil beda saja, tapi sekarang sesudah semakin banyak penulis dan artikel, kelihatannya lebih baik saya mulai memberi angka di artikel saya. Kalau anda ketinggalan beberapa artikel sebelumnya, inilah daftar artikel-artikel saya sebelumnya:

  1. Memulai dengan flashpunk dan AS3
  2. Membuat Pesawat menembakkan peluru
  3. Tambahkan musuh, tambahkan ketegangan
  4. Saatnya bullet pattern!

Oke sekarang saatnya kita masuk ke bagian berikutnya dari artikel kita ini, yaitu tentang collision detection. Untuk melakukan collision detection di flashpunk ini gampang sekali karena flashpunk sudah memiliki fungsi-fungsi khusus untuk deteksi tabrakan ini. Hal pertama yang harus kita lakukan adalah mendefinisikan hitbox. Hitbox adalah area berbentuk persegi empat yang dimiliki oleh entity, untuk mendeteksi tabrakan antara satu entity dengan entity lain. Ada 2 cara untuk membuat hitbox, yang pertama adalah menggunakan method setHitbox()

setHitbox(42, 21);

di sini kita membuat hitbox dari class Character sesuai dengan nilai width dan height-nya. Cara kedua adalah dengan menggunakan variabel width dan height

width = 42;
height = 21;

width dan height yang dimaksud di sini bukanlah lebar dan tinggi Entity, tapi lebar dan tinggi hitbox. Kedua cara memberikan hasil yang sama, terserah pada anda mau memakai yang mana, yang penting adalah pada akhirnya kita membuat hitbox berukuran 42 x 21 untuk Character kita

Berikutnya buka class Bullet kita karena kita akan membuat character kita bertabrakan dengan peluru ini. Sama seperti Character, tambahkan kode ini di constructor

setHitbox(20, 20);

Oke, sekarang kita sudah punya hitbox untuk dicek, yaitu milik class Character dan juga milik class Bullet. Apakah sudah siap untuk cek collision detection? Sebenarnya masih belum karena masih ada satu hal lagi yang harus kita lakukan, yaitu menentukan tipenya. Kenapa? karena kalau kita ingin mengecek collision detection, kita harus tahu dengan apa Character kita bertabrakan (implementasinya dalam game bisa bermacam-macam, mungkin kita membuat karakter utama dalam RPG bereaksi berbeda ketika bertabrakan dengan tembok biasa atau tembok berduri). Tuliskan ini dalam constructor Bullet

type = "peluru";

ada beberapa hal yang harus diingat dalam membuat tipe collision ini. Pertama, tipe collision harus berupa string. Kedua, tipe collision adalah case sensitive (“peluru” berbeda dengan “Peluru”). Ketiga, nama tipe collision tidak harus sama dengan nama class (seperti yang kita buat di sini).

Setelah kita membuat tipe collision untuk class Bullet, sekarang saatnya kita kembali ke class Character. Tulislah kode ini di dalam fungsi update()

if (collide("peluru", x, y)) 
{
	// terjadi collision dengan entity bertipe "peluru" di sini
        this.world.remove(this);
}

fungsi collide akan mengecek apakah terjadi  collision dengan tipe yang kita masukkan dalam parameter pertama (“peluru”) di posisi pada parameter kedua dan ketiga (dalam hal ini, posisi x dan y character). Untuk kesederhanaan tutorial ini kita akan langsung menghapus Character begitu tersentuh peluru (kita akan membuatnya lebih menarik di kesempatan berikutnya). Bisa anda coba gamenya di bawah sini dan character kita akan langsung hilang begitu menyentuh peluru. di artikel berikutnya kita akan lebih bersenang-senang dengan collision detection

Blogproject

Aryadi Perwira

Self-proclaimed AS3 blackbelt.

More Posts

Notice: This work is licensed under a BY-NC-SA. Permalink: making a shooter game with flashpunk, part 5
  • http://twitter.com/AryadiPS Aryadi Subagio

    pertamax diamankan. dan keliatanna ini artikel terpendek yg pernah wa tulis. nguber setoran XD

  • http://www.facebook.com/giripp Giri Prahasta Iruma

    Aduh, kelewat nggak ngebaca beberapa artikel -_-a

    keep writing masbro :D

    Ada asyiknya juga kalau bikin artikel sedikit2 tentang oop :D (cocolek ali)

Stop SOPA