[轉錄][心得] 關於夏夜攻防戰 - 其三
有了整個程式的主要成員後,接下來我照著當初設計時的腳步逐一解說。
首先來看Seeker。為了能夠模擬具有不同的狀態的行為模式,首先聯想到的
就是有限狀態機了(Finite State Automata)。透過簡單的狀態機,
應該能夠模擬出我想要的效果。
在最初的設定裡,Seeker需要具有幾個明顯不同的狀態:
1.SLEEP : 遊戲一開始的狀態。當沒有玩家去觸發時,就持續這個狀態。
若玩家的攻擊判定成功,則進入Got
2.GOT : 玩家成功的攻擊,即貼在Seeker身上開始吸血。
但是總不能讓玩家無限制的貪分啊,於是這個狀態需要一個計量表。
當超過一定時間,就跳到HIT狀態,Seeker準備發動反擊。
3.WAKE :當計量表未滿,玩家就已經脫離,這時就要切換到這個WAKE狀態。
這個STATE單純作為時間上的中繼站,等待一段時間之後進入FIRE狀態。
4.HIT :Seeker必須使用最強的攻擊方式來驅逐玩家。在這裡我的設定是
一擊必殺的近身攻擊。命中直接跳到Game Over,反之則進入FIRE狀態
5.FIRE :Seeker從武器庫裡面選擇武器,並且攻擊。
攻擊並非無限制的持續,因此這邊必須有個計量值,當Seeker打出了
一定累計的威力之後,就切換到TIRED狀態。當然也會因為玩家的再次攻擊
而陷入GOT狀態。
6.TIRED:這個狀態和WAKE類似。經過一段時間後跳到SEARCH狀態
7.SEARCH:持續一段時間的搜索判定。若找到了,則再次進入FIRE狀態,反之則
回到最原始的SLEEP狀態
光用說的太複雜,把上面的狀態用圖來表示就是這樣(圖解萬歲):
http://studentweb.ncnu.edu.tw/93321523/hb2006/teach/fig01.gif
從圖來看,就算你沒修過自動機,整個運作機制應該還是能一目了然。
其中比較特別的兩個部分是
"GOT" 無論什麼時候都有可能進入的狀態, 因為這是取決於玩家的部分
"WIN" 一但玩家HP小於0,則強制進入的狀態
好了,基本上Seeker的行為模式已經設定好。接下來,
要如何將紙上的理想化為實際的運作程式?
(續)
文章轉自暨大霞蔚山城 ★ HenryBBS (henry.twbbs.org)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.22.18.97
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
19
29