Construct 2 - Replay Game

August 18, 2016 in #Construct 2 #Coding | | | Share on Google+

Beberapa waktu yang lalu, saya membaca berita tentang Ghost di suatu game balapan XBOX. Nah, Ghost ini akan merekam segala gerakan karaktermu. Sehingga nanti, kamu bisa melawan dirimu sendiri waktu balapan. Misalnya nih, untuk memecahkan rekor lap tercepat.

Dalam tutorial kali ini, kita akan merekam gerakan karakter sampai mati. Fungsinya, agar harapannya pemain gak melakukan kesalahan yang sama berulang-ulang.

Persiapan

Untuk persiapan, kita cuma membutuhkan setup game platformer biasa. Agar bisa memahami tutorial ini dengan baik, kamu harus paham dulu tentang Stack dan Queue yang bisa kamu pelajari dulu dalam tutorial saya di forum resmi C2.



Pembuatan Karakter

1.) Karakter

Berikut properti instance variable milik objek Karakter :

  • recording (booelan)
  • age (number)

recording berfungsi untuk noaktifkan fitur perekaman. Kalau udah mati ya berhenti merekam. Sedangkan age berfungsi untuk mengetahui lama-barunya rekaman yang dibuat.

Array

2.) Array

Selanjutnya, buat juga Array records dengan properti :

  • width : 0
  • height : 5
  • depth : 0

Array bernama records ini untuk menyimpan segala informasi tentang karakter. Mulai dari posisi, animasi, animation frame, atau yang lain kalau kamu mau menambahkan yang lain.

Setelah array dibuat, jadikan Karakter sebagai container.
Kalau belum paham, container itu mirip instance variable, hanya kalau instance variable isinya cuma teks, angka, atau booelan, container isinya objek lain.

Kemudian sama seperti instance variable, setiap objek Karakter nantinya akan punya array records sendiri-sendiri.


Variabel

3.) Variabel

Kita cuma butuh satu variabel namanya frame. Fungsinya, untuk menghitung durasi. Semakin banyak maka akan semakin lama durasi rekamannya.


Event

1.) Merekam

Karena kita merekam segala aktifitas karakter, maka apapun gerakannya harus disimpan. Oleh karena itu, digunakan every tick.

Selama keadaan instance variable masih recording, maka simpan ke dalam array records.

2.) Ketika mati

Ketika karakter mati, maka berhenti merekam.
Lalu mulai proses replay dengan mengeset ulang nilai frame menjadi 0.

Aksi create object digunakan untuk mengulang lagi permainan ke checkpoint sebelumnya.



Membuat Replay

3.) Proses replay

Tinggal dibalik.
Putar ulang segala hal yang udah disimpan di array record tadi.

4.) Membatasi jumlah replay

Dalam kasus saya, replay cuma ada satu, yaitu saat mati yang paling baru. Kalau mau semua replay yang diputar, ya dihapus aja event di atas.

Hasilnya kalau gak ada :



Selesai!

Fungsi replay sudah selesai dibuat.
Namun harus hati-hati juga, karena kalau jarang mati, maka semakin banyak data yang disimpan, mungkin bisa bikin gamenya ngelag.

Solusinya?
Gak usah disimpan semua. Mungkin cuma 10 detik sebelum mati misalnya. Dari sini, bisa dibuat screenshoot detik-detik saat mau mati seperti game Hill Climb misalnya.

Kamu bisa download source code di sini.

August 18, 2016 in #Construct 2 #Coding | | | Share on Google+