我正在制作基于2D地图的游戏。玩家控制一个角色,而几个AI控制的角色尽可能快地向玩家移动。玩家想要避开它们。
玩家和AI可以移动几种表面类型,每种都有不同的运动奖励。我在“前端”地图下面有一个颜色编码的地图,在每个游戏循环中使用该地图来确定每个角色的当前速度。例如,黑色线段可能代表州际公路,并且比在绿色草地上行走时更多地获得运动奖励。
我不是CS人,所以我想确保我已经获得了高级AI寻路算法。这就是我的想法: - 敌人将永远处于一种类型的道路上。我们必须经常检查(使用距离公式以考虑不同表面的移动值的方式)移动到相邻表面是否比停留在当前表面上更快。因此,我们必须比较(1)停留在当前表面上的两个距离和(2)切换到相邻表面。 - 使用当前位置和目标位置之间的线来检查将跨越的表面类型。使用此选项可以计算距离公式中的移动值。
我还需要考虑什么?
答案 0 :(得分:1)
A *怎么样?此页面具有初学者观点,完全符合您的要求:http://www.policyalmanac.org/games/aStarTutorial.htm
答案 1 :(得分:0)
我认为你需要的是A *算法。我相信你可以在许多地方找到它编码,但这是理论上的解释:
Sill,我认为你最好在Stack Overflows' Gaming group
上提出这类问题Here是该网站的绝佳答案。