游戏人工智能编程案例,搞到这本书后,就大致看了一下,总算买了本实际点的书了,比起我的上一本来讲,要实际多了。自己利用空闲时间看了第一章(略过),第二章。也就是有限状态机(FSM)。看到本章的总结后,知道有限状态机在设计上还要研究,看来只是入门,不过对我这个刚接触的人而言,也很不错了。
大致谈一下自己的感想(理解):
有限状态机,看到名字后,你就会猜:有限个状态而组成的机制。也蛮确切地阿:),那么很显然就要把你的状态摆出来。状态吗,有许多种,你会自然想到用1,2,3,4 等等来表示状态,而这些1,2,3,4 等等也再进一步,可以用enum来表示状态,然后就是switch,case来选择状态进而处理。这是初步的构想。
然而如果遇到状态居多,那么case就要像面条一样,并且调试起来也不方便(书上说的,自己调试一下就知道了)。并且状态的扩展也称了问题,除非去enum里加,也就是扩展性不好。
后来就想到了建立State基类,让每个具体的状态去继承,具体的具体的状态再去继承具体的状态,等等。
来解决扩展性,和状态之间的联系问题。对了State这个基类还有一个虚函数execute,美其名曰:执行。
在某个具体的状态,会干某个具体的事情。就是这个意思。比如在睡觉,就是睡觉状态:做梦就是睡觉执行的东西,当然也可以不做梦,打虎楼也行,你自己定义了。理解这个execute就行了。
对了,忘了角色的定义了,没有角色,何来状态。当然角色的定义比较广泛,可以指人物,树木,天气,一块石头也行。那么要定义一个基类了:BaseGameEntity 。这个角色要有自己的ID,就好比每个人都有身份证一样,这个ID不能重复的。还有角色总要干些事情,那么自身会在不断改变,那么就定义一个update函数了。那么这个基类也就基本上搞定了,update函数搞成纯虚的就行了。
具体角色实现什么,就自己定义了。