游戏战斗AI实现

战斗AI设计的结果如下:最简单的战斗AI设计

【实现结果】

采用紧跟的追踪方式,Player选择了最近的目标为敌人,拖动敌人,Player跟随,当敌人距离过远时,Player没有了目标,停止移动。

采用锁定的追踪方式,无论敌人移动到哪里,Player都会移动到敌人前进行攻击

 采用重择的追踪方式,在追踪敌人的过程中遇到更符合条件的目标就更换敌人

【实现过程】

采用nodecanvas辅助实现这个设计,由于目前的设计很简单,我们不用根据设计结果提炼出条件节点和行为节点,全部采用行为节点,结果如下:

 使用一个Sequencer,动态遍历三个行为节点,其分别对应设计中的三个阶段。

Sequencer按从最高优先级到最低优先级(从左到右)的顺序执行其子节点,当所有子节点成功完成时返回成功,当任何子节点失败时返回失败。

行为节点采用自己所写的脚本。

  • 创建一个PlayerController脚本,为其设置阵营、追踪方式和攻击目标字段。
  • 创建一个PlayerManager脚本管理所有角色,其是单例模式, 并实现了SearchTargets和ChooseEnemy方法等。
  • 创建FindEnemy脚本,在OnExecute中实现找到敌人
  • 创建MoveToEnemy脚本,在OnUpdate中实现攻击触发、移动和追踪方式判定
  • 创建AttackEnemy脚本,在OnExecute中调用PlayerController的攻击方法

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值