精華區beta GameDesign 關於我們 聯絡資訊
有了整個程式的主要成員後,接下來我照著當初設計時的腳步逐一解說。 首先來看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