Membuat FSM sederhana minimal 10 states yang dilengkapi dengan Pesudocode dan penjelasannya
1. FSM (Finite State Machin)
2. Pseudocode
using UnityEngine;using System.Collections;
public class GameFSM : MonoBehaviour {
public enum TurnStates{
masuklevel,
diam,
berjalan,
koin,
box,
player,
huruf aksara,
kunci,
timer,
habis,
musuh,
mengenai,
mendapatkan,
GameOver,
NextLevel
}
public TurnStates state;
public bool gameInProgress = true;
void Start () {
state = GameFSM.Mulai.Init;
StartCoroutine ("TurnFSM");
}
private IEnumerator TurnFSM (){
while(gameInProgress){
switch(state){
case TurnStates.LevelAwal:
if( Permainan Awal()) {* state = diam:}
break;
case TurnStates.diam:
if(Mulai()) {* state = berjalan;}
break;
case TurnStates.berjalan:
if( berjalan()) {* state = koin;}
break;
case TurnStates.koin:
if( mencari koin()) {* state = point;}
if (menghindar ()) {* state = Musuh;}
break;
case TurnStates.benda:
if( mencari koin ()) {* state = box;}
if(mendekati()) {* state = Musuh;}
break;
case TurnStates.musuh:
if( Terkena Enemy ()) {* state = timer;}
break;
case TurnStates.box:
if( benar ()) {* state = huruf aksara jawa;}
break;
case TurnStates.timer:
if(waktu masih tersedia ()) {* state = jalan;}
else (waktu sudah habis ()) {* state = GameOver;}
break;
case TurnStates.Kunci:
if( berhasil menjawab()) {*state = NextGame;}
break;
case TurnState.NextGame :
if (DoneLevel ()) {* state = LevelBaru;}
break;
}
yield return null;
}
}
3. Penjelasan
Game mulai dimainkan oleh pengguna melalui tahap pertama yaitu memulai permainan awal pada level 1, kemudian player berada pada posisi diam, apabila anak panah pada keyboard di jalankan maka otomatis pemain atau player akan berjalan. Player tidak hanya bisa berjalan akan tetapi player juga bisa melompat. Pada game ini player diminta berjalan menelusuri jalan untuk mencari koin. koin tersebut nantinya akan digunakan untuk membuka box yang berisi huruf aksara, tidak hanya huruf tetapi juga terdapat suara huruf tersebut sehingga mempermudah anak untuk mempelajari dan mengenal huruf aksara tersebut, syarat agar 1 box terbuka itu harus mengumpulkan 5 koin terlebih dahulu jadi apabila kita ingin membuka 5 box harus mengumpulkan 25 koin dalam waktu 80 detik, jika dalam waktu 80 detik tersebut player tidak berhasil membuka kelima box tersebut maka akan game over, didalam game juga terdapat musuh yang selalu berjalan disana, jadi apabila player terkena musuh maka akan game over dan keluar total point yang diperoleh. Jika dalam waktu 80 detik berhasil membuka semua box maka player tiap membuka box player akan mendapatkan 1 kunci yang mana fungsi dari kunci adalah untuk membuka pintu, maksud pintu disini untuk next pada level berikutnya, jadi dalam 1 level harus berhasil membuk kelima box tersebut dalam waktu 80 detik agar bisa next level, jika hanya baru bisa membuka 3 box dalam waktu 80 detik maka player gagal dan akan game over. Untuk sistem permainan pada level selanjutnya juga sama.
Reverensi
https://forum.unity.com/threads/trouble-with-a-switch-case-finite-state-machine-in-c.107979/
http://pzuh.blogspot.com/2011/09/actionscript-30-finite-state-machine.html
Tidak ada komentar:
Posting Komentar