Construct 2 - Save Game, Level Select & Highscore dengan LocalStorage

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

Sudah agak lama Construct 2 berpindah mode penyimpanan dari WebStorage menjadi LocalStorage. Bagi yang sudah terbiasa dengan WebStorage, berganti ke LocalStorage menjadi agak membingungkan.

Perbedaan nyatanya adalah pada saat pengambilan data. Dalam contoh saya dengan WebStorage saya mengunakan for loop untuk mengakses banyak save-savean sekaligus. Nah, tapi sekarang gak bisa lagi, karena C2 tidak memperbolehkan ada dua 'ON' dalam satu kondisi.

Tolong perhatikan baik baik penjelasan berikut :

Sistem LocalStorage butuh tiga kali kerja sebelum kamu bisa mengambil data

1.) Check item exists

Untuk jaga-jaga, selalu gunakan kondisi ini. Fungsinya untuk mengecek sudah pernah melakukan save atau belum. Kondisi ini akan trigger salah satu dari dua kondisi :

  • On item exists : sudah pernah melakukan save
  • On item missing :belum pernah melakukan save

2.) Get item

Aksi ini dilakukan setelah kondisi On item exists terpenuhi. Dalam tahap ini, data belum bisa diambil.

3.) On item get

Proses pengambilan data yang sebenarnya.



CONTOH

Set dan ambil nilai dari LocalStorage
Dalam contoh ini, akan dibuat fitur save game dan highscore sederhana.

Karena susah melakukan loop dinamis, digunakan array sebagai tempat menampung sementara

cek item save_data dan highscore. Lalu set panjang array sebesar total level di dalam game.

Kalau missing, set nilai default pada array. Maksudnya, berarti user belum pernah main game. Semua level masih locked (belum bisa dibuka) dan skor masing-masing level masih 0.

Kalau exists, berarti user udah pernah main. Lakukan get item terus taruh progress permainan ke dalam array.

Terakhir, tinggal ganti animasi. Kalau array nilainya "locked", berarti belum pernah main. Tampilkan animasi gembok atau semacamnya.

Sebaliknya, artinya udah "unlocked", bisa dimainkan kembali.



Update Data

Cara melakukan update juga perlu bantuan array.
Misalnya kita mau merubah highscore, maka kita perlu tau user sedang memainkan level berapa (digunakan global variable SelectedLevel)

Lalu ubah nilai pada array indeks X, yang merepresentasikan level yang sedang dimainkan.

Jika sudah, baru simpan array ke LocalStorage.



Demo

download source code

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