状态模式设置敌人AI(1)

     在游戏中要设置人物的AI可以使用状态模式(好像状态模式又有点类似于之前用过的桥接模式,后面有时间在比较一下)
! 

首先可以看下状态模式的类图
这是状态模式的类图

然后这是参照游戏设计模式书画出来的游戏AI的状态图,状态和人物可以自由扩展,而不会像使用switch语句一样去修改内部代码,遵循了开闭原则。

这是参照游戏设计模式这本书设计的类图

说明:
IAIState:状态的接口,里面的Update方法由子类进行实现,然后在ICharacter类里面进行调用

IdleState,MoveState:不同的状态,需要几个加几个,这里我制作时因为不同的人物,在同一个状态可能会有不同的表现(比如说同样是Idle状态,小怪的Idle和boss的不一样,动画也不一样),本来每一个状态下面又细分一个不同人的状态,但感觉会更复杂,所以暂时决定采用多写几个类,就不分子类了(因为人物不是很多,如果人物多的话感觉再细分一下可能会更好一点,有待实践)。

ICharacterAI:调用状态的接口,里面的Update方法用来调用状态的Update方法

EnemyAI:不同的人物进行调用,假如还有其他角色可以多扩展其他角色。

ICharacter:总的角色类,里面进行各种功能的组装,用SetAI方法选择AI
暂时先这些,具体实现慢慢来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值