|
如题,有个怪物AI依据方向进行锁敌的问题。
这是一个动作游戏,玩家操作虚拟摇杆控制奥特曼打怪兽的游戏。
情景假设:
1)玩家利用移动摇杆,操纵奥特曼朝向正北方。此时,奥特曼南方1米处,有怪兽A(离他最近),在正北5米处,有怪兽B(离他最远),北偏东10°,3米处,有怪兽C(不远不近,但是跟当前朝向只偏了10°)。北偏西40°,2米处,有怪兽D(很近,但是跟当前朝向的角度偏得很远)。
假设奥特曼普攻的射程就是10米(可以打到所有的怪物)。
需求是:
此时玩家按普通攻击键,会进行普攻,奥特曼的攻击优先级顺序为C>B>A>D,即,方向优先,距离其次。
2)玩家没有对移动摇杆使用任何操作,此时奥特曼已经朝向了北方。怪兽位置和1)一样。
需求是:
此时玩家按普通攻击键,会进行普攻,奥特曼的攻击优先级顺序为A>D>C>B,即,距离为唯一判定。
求助问题是,设计一套AI的仇恨规则,让玩家在操纵移动摇杆时,达到1)需求的效果。
我预想的方案是,奥特曼依据仇恨值来决定攻击哪个怪兽,需要如下参数:
1)选取范围(与技能射程等同,超过技能射程的不纳入仇恨值计算,即10米外的怪兽奥特曼就当做没看见了.)
2)角度仇恨值算法(怪兽与奥特曼角度越大,仇恨值越低.)
3)距离仇恨值(怪兽距离奥特曼越远,仇恨值越低.)
三个参数共同作用,计算出范围内所有怪物最终仇恨值,达到需求1)的效果,需求2)的话去掉角度仇恨值算法即可.
但我不确定这样是否漏了什么,或者有什么更优的解决方案.
|
|