作者mimjy (米其)
看板GameDesign
标题[转录][心得] 关於夏夜攻防战 - 其三
时间Wed Jun 14 23:07:59 2006
有了整个程式的主要成员後,接下来我照着当初设计时的脚步逐一解说。
首先来看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