【#第一文档网# 导语】以下是®第一文档网的小编为您整理的《格斗游戏的AI是怎么实现的?》,欢迎阅读!
![格斗,实现,怎么,游戏](/static/wddqxz/img/rand/big_38.jpg)
格斗游戏的AI是怎么实现的?
例如怎么确定是要防御还是攻击?怎么能实现连招?我说的格斗游戏是类似拳皇和街霸那种。
【知乎用户的回答(33票)】:
这个其实挺复杂的,我也不知道一个回答能不能写的完,我就写简单点
格斗游戏基本不存在目标这回事,就是P1和P2,所以在AI里面都是直接取的,比如直接取P2的state(虽然可以做双人,但是最多也就有一个nearenemy之类的取最近的单位)
底层框架会提供很多接口,用来查询对手与自己的水平、垂直距离,动作状态,state编号,甚至动画播放时间等等
一般所有角色的基础动作都是统一的state编号,比如受击,倒地,站立之类的
然后在这个基础上就可以写AI了
首先有几个基本概念:立回,连段,压制,起攻,插动(自行百度)
搞清这几个基本概念你就基本搞清了什么时候进攻,什么时候防御了
具体实现这些基本概念的方式,就要根据程序引擎的实际情况了,每种都是不一样的
相对比较简单的,AI就是一大段从上到下顺序执行的case(如果XXXX,就XXXXX)
比如连段就是(如果重拳击中,对方处于地面受击,就出前A)之类的
比如防御(如果对方处于下蹲,并且处于动作,并且水平距离小于4个像素,就使用下蹲防御)
如果读state编号和动画时间太猛,会导致AI不可战胜
所以一般会写概率动作,或者难度标识,或者控血,这样AI就不会太IMBA
【孟德尔的回答(15票)】:
你说的是格斗游戏,不是那种格斗网游吧?DNF是动作游戏+RPG。
格斗游戏的AI就是从内存里读取一下对手态势(状态,相对位置,此状态将持续的时间),然后从AI的行动列表中选一个。
其实判断还挺麻烦的,因为格斗游戏里对手是不停变化的几个区块,比如出拳的时候,手臂是一个区块,有攻击判定,然后躯干和腿是另外的区块,有受攻击判定。
AI不会管这么细,它只要知道双方相对位置,对手处于什么状态,持续时间,从对应的策略表里选一套行动就行,区块判定这些应该是在设计对应策略表时考虑的。
有的格斗游戏里有学习AI,应该是能从对手现在的状态判断出下一步的状态,然后采取固定的对应策略。
【知乎用户的回答(4票)】:
AI这东西没必要说太细,只需要知道是用行为树组织起来动作节点的就行。
【小郑的回答(1票)】:
我觉得去学习mugen里面的AI会给你巨大的收获。 【知乎用户的回答(1票)】: 其实格斗的AI是相对简单的。 因为格斗AI主要靠作弊。
以街霸II为例, 实际操作者,比如古烈,需要(下上腿)蓄势三秒才能完成动作,但是AI操控时,直接判断P1(操作者)就行。
类似
if P1.Y>0 // (在空中) then P2.脚刀();
本文来源:https://www.dy1993.cn/EjgK.html