Construct2 breakout-tutorial-cover

Published on May 12th, 2016 | by Aditia Dwiperdana

0

Membuat fitur save dan load (Tutorial Breakout bagian 5)

Biasanya pada layar pemilihan level, seperti yang sudah kita buat di artikel sebelumnya, pemain hanya bisa memilih level yang sudah terbuka. Sebuah level akan ‘terkunci’ jika pemain belum pernah mencapai level tersebut sama sekali. Fitur ini dibuat agar pemain tidak harus selalu mengulang dari level pertama jika ingin mencapai level terakhir. Untuk membuat fitur tersebut kita harus bisa menyimpan ¬†informasi level tertinggi yang sudah dibuka oleh pemain, sehingga jika pemain menutup permainan dan membuka permainan di lain hari, data informasi level tertinggi tersebut tetap ada.

155 - level menu

Ada dua tipe penyimpanan data dalam Construct 2:

  1. Save state: Construct akan menyimpan kondisi terakhir dari setiap objek yang ada dalam permainan, mulai dari posisi dan pergerakan, frame animasi, instance variable, dan lain-lain. Saat kita panggil fitur Load state, kondisi permainan akan langsung dikembalikan ke kondisi terakhir saat fitur save state ini dipanggil.
  2. LocalStorage: dengan objek LocalStorage kita bisa menyimpan kombinasi ‘key’ dan ‘value’ tertentu sesuai dengan kebutuhan kita. Keuntungan utama LocalStorage adalah karena hanya data yang kita simpan yang akan di load, proses loadingnya akan jauh lebih cepat dibandingkan fitur save state yang menyimpan informasi semua objek dalam permainan. Fitur LocalStorage ini bisa digunakan mulai Construct 2 versi 206 atau lebih, sebelumnya fitur ini bernama WebStorage.

Kedua jenis penyimpanan data tersebut memiliki keuntungan dan kekurangan masing-masing. Berikut adalah beberapa contoh kasus dan jenis penyimpanan apa yang cocok untuk kita gunakan:

  • Untuk permainan action atau petualangan yang memiliki banyak musuh atau objek acak lain dan proses load akan membawa kita langsung ke tengah permainan, fitur Save state akan memudahkan kita karena kita tidak perlu menyimpan satu per satu informasi objek seperti posisi, nyawa, dan lain-lain,
  • Untuk permainan dengan sesi permainan singkat dan proses load tetap membuat kita memulai dari awal level seperti permainan puzzle, quiz, atau balapan mobil, kita cukup menggunakan fitur LocalStorage.
  • Untuk permainan dengan banyak objek namun semua bisa dimunculkan secara dinamis oleh event, kita bisa menggunakan LocalStorage, atau save state dengan memberi behavior ‘No save’ pada objek-objek yang dinamis tersebut, agar datanya tidak perlu disimpan.

Penyimpanan data pada Arkanoid

Untuk game Arkanoid yang kita buat, kita hanya perlu menyimpan beberapa informasi seperti level yang sudah dibuka pemain dan nilai tertinggi yang pernah dicapai oleh pemain, oleh karena itu kita akan menggunakan fitur LocalStorage.

  1. Kita perlu buat beberapa variabel global baru, klik kanan pada area kosong di ‘event sheet 1′ > Add global variable > beri nama ‘highestLevel’ tanpa tanda petik, jenisnya number, beri nilai awal 1. Buat variabel kedua bernama ‘highscore’ dengan nilai awal 0.
  2. Buat objek LocalStorage dari tampilan layout, klik kanan > Insert new object > LocalStorage.
  3. Buat fungsi ‘SaveData’, buat event baru, Add event > Function > On function > beri nama ‘SaveData’. Buat subevent untuk membandingkan level saat ini dengan level tertinggi, tekan S > System > Compare variable > pilih variabel ‘level’, pilih ‘greater than’, tulis ‘highestLevel’.
  4. Add action > LocalStorage > Set item > tulis ‘highestLevel” dan isi nilai dengan ‘level’. Ini akan membuat data di LocalStorage menjadi level tertinggi saat ini.
  5. Kita buat sub-event yang sama untuk variabel ‘highscore’ (lihat gambar).

156 - event save

Pada bagian berikutnya kita akan membuat fungsi untuk load data di awal permainan dan mengatur tampilan menu level sesuai dengan level yang sudah dibuka oleh pemain.


Ikuti channel Gedebuk di Youtube untuk mendapatkan berbagai video tutorial pembuatan game! Klik saja tombol Subsribe di bawah ini.


Lebih suka tutorial tertulis seperti artikel ini?




Tags: ,


About the Author



Back to Top ↑