【发布时间】:2014-09-29 19:30:07
【问题描述】:
我正在努力实现一个好的追逐者。我有一个需要追逐冰球的曲棍球运动员。我可以预测下一个球员和冰球的位置。我试图使用转向行为,但未能找到一个好的预测器来预测冰球靠近时的情况(例如,想象一下冰球以高速几乎朝向球员。当冰球有点远离时球员只做了一个小角度转弯. 然而,当冰球靠近并错过了玩家时,最后两到三个滴答声,玩家需要转动更大的角度才能仍然看到冰球。当转动角度受到限制时,冰球逃脱并且球员不能做任何事情。如果它开始早转,那会很好,但当我预测更多步数时,球员往往会开始转向他身后很远的冰球位置......)。然后我打算使用 * 搜索。当冰球在前面并且冰球速度低于球员的速度时效果很好。但是当冰球速度较大时,它就会成为逃跑的目标。所以每次 a* 扩展一个新状态时,它往往会回顾并发现在之前的状态中 puck 离玩家更近(puck 逃脱了!),所以它更喜欢之前的状态并成为 bfs。 所以我想有一个众所周知的解决方案,但我没有在谷歌上搜索任何东西,所以也许社区会帮助我。提前致谢!
更新:所以基本上我重新发明了我猜的轮子。我现在正在做的是遍历冰球位置。当我以相同的滴答数击中第一个可以到达的位置时,我宣布胜利。这是非常昂贵的资源,但我想不出更好的办法。
【问题讨论】:
-
如果您正在寻找比 A*/steering 更高级的东西,您可以查看列出的“移动目标”算法here
-
我无法理解“不断重新计算”。在我看来,这就像跟踪一个离目标太远的点。这与只是前往现在的目标有什么不同?相反,我想找到一种识别拦截路径的方法——即,当我到达那里时,目标将在正确的时间出现。不早不晚。为了能够拦截它。
标签: search real-time path-finding a-star