iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 6
1
自我挑戰組

卡牌連線遊戲開發經驗分享系列 第 6

#6 遊戲的基本流程:輸出、輸入、更新狀態

  • 分享至 

  • xImage
  •  

為了避免大家越級打怪,先用一個很簡單的終極密碼來解釋。
//怕有人不會用連結,這是一個線上跑程式的網站,先按下 run,然後在右邊輸入數字。

  1. 印資料,告訴玩家基本訊息
  2. 然後等待玩家輸入內容
  3. 針對玩家輸入的內容調整遊戲狀態,回到 1。

再來介紹貪吃蛇的程式流程:

  1. 顯示畫面
  2. 等待玩家按下按鍵(等待時間為更新週期 t,t越小代表蛇的速度越快)
  3. 玩家有按鍵,更新蛇的方向,回到 1 更新畫面。

但目前的程式寫法還沒辦法應付貪吃蛇的遊戲,這是因為一般文字輸入的時候,程式會 block 住,所以我們需要引入類似像 kbhit() 這樣的函數,避免程式卡死不動。現在的 GUI 介面裡面都有一個事件迴圈,它運作的方式跟你現在看到程式寫法差很多,但是這樣的遊戲循環(輸出、輸入、更新狀態)依然是不變的。

後面會使用像是 onclick, keydown, keypress, keyup...等事件傳給程式處理,程式變成被動等待使用者輸入的狀況。這樣的事件架構在 js 很好找,現在大部份的事件系統都是這樣運作的。

明天會討論如何解決程式因為等待輸入卡死的問題,然後如何透過多工機制讓程式可以同時跑不同的運算。


之後會迅速地帶過一些概念
如果各位讀者發現跟不上麻煩留言回覆,我會再調整一下文章的深度
謝謝收看,我們明天見!


上一篇
#5 如何開始遊戲開發?
下一篇
#7 事件驅動開發:從時間寶石中看見的未來
系列文
卡牌連線遊戲開發經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言