2015年4月12日 星期日

Javascript遊戲撰寫初挑戰 WORDKEEPER (四)遊戲整體流程規劃

就像上一篇所說的
寫遊戲就像設計桌遊一樣
重點在於設定好每一個回合的每一個環節
確保所有的可能性之間不矛盾



遊戲整體的流程來說
會先有一些載入圖片與參數設定等基本初始化的動作
接著將整個遊戲切入遊戲準備開始的狀態
當使用者點擊畫面時
將方塊設定好丟入場景中,開始遊戲
而等到遊戲時間結束時
顯示結束訊息,切換到遊戲結束狀態
直到使用者再次點擊畫面回到準備開始的狀態
依照這樣的循環不斷重複

用個簡單的流程圖來表示的話:

  [初始化]
  ↓
┌→[準備開始]
│ ↓
│ [遊戲中]
│ ↓
└─[遊戲結束]

而最主要的遊戲流程都在遊戲中的狀態下發生

在程式中設定有tick的時程函式
這個函式每隔一段時間便會重新執行一次
對遊戲來說每執行一次就是一個"回合"
所以寫遊戲最主要的工作就是在規劃這個tick裡面的動作
例如:
在[準備開始]的階段中
顯示一段文字訊息提示使用者點擊畫面以開始遊戲
並使這段文字緩慢閃爍
因此在tick中
每一個回合根據和上一個回合的時間間距
計算文字訊息的透明度並顯示出來

而在遊戲中階段的tick流程如下

1.根據使用者指令將該要被交換的方塊狀態改變
2.更新返回中、掉落中以及交換中狀態的方塊的時間與位置
3.檢查是否有方塊要被消去
4.將交換後沒能被消去的方塊組合改為返回中
5.更新消失中的方塊
6.將已消失的方塊向上交換,必要時加入新方塊
7.將位置不合的待機方塊改為落下中狀態

8.其他(檢查是否還有可以消去的組合、更新倒數時間、更新分數顯示等)

很高興的
這次的規劃看起來沒有太大的問題
照著流程一點一點實踐後
遊戲順利完成了
跑起來的結果也令人滿意
詳細的介紹都放在程式碼註解中
先放上下載連結與截圖
有興趣的人歡迎下載
遊戲截圖

撰寫時盡量把一些可能會需要修改的參數拉了出來
可以藉由傳入設定值來修改
所以使用上應該還算方便
之後如果有時間再把一些比較值得探討的函式拿出來寫一下心得~

沒有留言 :

張貼留言