Sekarang kita akan membuat “Apple” saat berbenturan dengan “Player” langsung hilang langsung saja kita ke Event sheet “Level01”
Add event > Sprite “Apple” > On collision with another object > Pilih Sprite “Player”
Add action > Pilih Sprite “Apple” > Destroy.
Logikanya ketika Sprite “Apple” berbenturan dengan Sprite “Player” maka system akan langsung menghancurkan Sprite “Apple” dari layar.
Lanjut lagi, kali ini kita akan membuat “Apple” saat berbenturan dengan “Ground” maka akan memudar (kalian bisa membuatnya menghilang jika mau).
Add event > Sprite “Apple” > On collision with another object > pilih Sprite “Ground”
Add action > Sprite “Apple” > Start fade
Nah untuk memberikan efek memudar kita terlebih dahulu harus menambahkan Behavior terlebih dahulu
Klick Sprite “Apple” > Add Behaviors > Pilih “Fade”
Logikanya ketika Sprite “Apple” berbenturan dengan Sprite “Ground” maka system akan mejalakan sifat memudar pada Sprite “Apple”
Sekarang kita akan membuat Score dan Health nya, jadi kita membuat Global variablenya terlebih dulu.
Buat saja dua Global variable kita berikan nama masing - masing “ScorePlayer” & “VarHealthbar”.
Terus kita sekarang tinggal berikan saja tindakan tambahan terhadap Sprite yang kita ingin hubungkan dengan Global variable yang kita inginkan.
Pada apel ketika berbenturan dengan dengan pemain maka kita berikan tindakan,
Add action > System > Add to > Pilih variable “ScorePlayer”, Set Value “1”.
Logikanya saat kondisi terpenuhi maka System akan menambakan 1 nilai pada Global variable “ScorePlayer”.
Pada apel ketikan berbenturan dengan dinding maka kita berikan tindakan,
Add action > System > Subtract from > Pilih variable “VarHealthbar”, Set Value “1”.
Logikanya saat kondisi terpenuhi maka System akam mengurangi 1 nilai pada Global variable “Varhealthbar”.
Sekarang bagaimana cara kita memunculkan hasil dari kedua Global variable tersebut?
Kita bisa menghubungkan Global variable tersebut dengan “Text” yang telah kita buat sebelumnya
Add event > Pilih Text “Score” > Is on layer > Layer “0”
Add action > Pilih Text “Score” > Set text > Text (“Score: ” &ScorePlayer)
Logikanya saat Text “Score” berada pada layer “0” maka Text “Score” akan menampilkan text tersebut pada layer menjadi Score: 0 dikarenakan,
“Score: ” <= Text biasa
&ScorePlayer <= memanggil variable yang kita ingikan untuk perubahan nilai pada Score
Lakukan hal serupa untuk memunculkan Health kita pada layar,
Add event > Pilih Text “Health” > Is on layer > Layer “0”
Add action > Pilih Text “Health” > Set text > Text (“Health: ” &VarHealthbar)
Logikanya saat Text “Health” berada pada layer “0” maka Text “Health” akan menampilkan text tersebut pada layar menjadi Health: 10 dikarenakan,
“Health: ” <= Text biasa
&VarHealthbar <= memanggil variable yang kita ingikan untuk perubahan nilai pada Score
Nah sekarang kita coba jalankan, ada yang aneh?
Ya.. disini saat “Apple” jatuh sekali akan mengurangi nilai dari VarHealthbar kita berkali - kali dan ketika “Apple” sudah jatuh ke tanah saat “Player” mendekati secara cepat maka akan terhitung sebagai Score
Ini terjadi karena nilai “Apple” saat jatuh ke tanah selalu dihitung berulang.
Cara mengatasinya kita akan bermain pada Local variable kali ini, kita buat saja variablenya
isFall (Boolean) > False agar System bisa membacanya lebih jelas
Nah sekarang kita kembali lagi ke Event sheet “Level01”
Pertama kita akan membenarkan kondisi dari “Health”, kita berikan saja Another condition pada “Apple” On collision with “Ground”
Klik kanan pada kondisi diatas
Add another condition > Pilih Sprite “Apple” > Is boolean instance variable set > Instance variable “isFall”.
Add action > Pilih Sprite “Apple” > Set boolean > Instance variabale “isFall”, Value “True”
Logikanya ketika kondisi “Apple” berbenturan dengan “Ground” dan ketika “Apple” “isFall” = False sudah terpenuhi,
maka Boolean di “Apple” akan mengset isFall = True saat “Apple” membentur “Ground”
Jadi system hanya akan mengurangi 1 dari “VarHealthbar” ketika “Apple” isFall = True, jadi ketika “Apple” jatuh untuk berikutnya maka system tidak akan menginputnya sebagai poin untuk mengurangi “VarHeatlhbar”.
Lakukan hal yang sama untuk kondisi “Apple” On collision with “Player”
Add another condition > Pilih Sprite “Apple” > Is boolean instance variable set > Instance variable “isFall”.
Di Invert pada kondisi tambahan diatas
Logikanya ketika kondisi “Apple” berbenturan dengan “Player” dan “Apple” “isFall” = False sudah terpenuhi,
Maka System tidak akan input “Apple” yang sudah jatuh ke “Ground” sebagai poin untuk Score, karena hanya “Apple” yang bernilai False yang dibaca oleh system sebagai input poin untuk “ScorePlayer”
Nahh tinggal langkah terakhir :D, sekarang kita buat bagaimana jika kondisi darah sudah mecapai “0”
Kita buat saja seperti ini,
Add event > System > Compare variable > Variable “VarHeatlhbar”, Comparation “Equal to”, Value “0”
Add action > System > Go to layout > Layout “Game Over”
Logikanya ketika “VarHealthbar” = “0” maka system akan memindahkan kita ke layer Game Over
Nahh sekarang pasti ketika di Run sudah berjalan dengan baik kan? :D
kalau begitu sampai disini ya pembahasan kita tentang membuat game sederhana, semoga ilmunya bermanfaat brotha sekalian.
Terimakasih! :D
File Capx download disini