我现在正在开发一款游戏,我将为用户动态构建多个AI对象“走”的路径。我将仅在用户输入上检测/重绘路径,但我仍在争论最快的方法来更新许多AI对象在给定路径上“沿着/向上/向下”行走的运动。想想pac man的例子,但是水平是动态的。现在,我倾向于在最终类的链接列表中构建敌人,并循环遍历链接列表,在每个AI对象中调用一个函数来绘制沿路径的下一个移动。不确定这是否是最好的方法,寻找想法。 :)谢谢!
答案 0 :(得分:3)
听起来你有一堆跟随同一条路径的实例;如果是这样,您可以很好地计算最远对象的路径,然后对所有较近的实例重新使用该计算的结果。基本上,让PathMemoizer具有pathFrom(myLocation:Location):List(或其他)。计算最远的路径一次然后让每个人都打电话:
if(pathMemoizer.pathFrom(this.myLocation() ) == null) {
pathMemoizer.expensivePathCalculation(this.myLocation());
}
mySteps = pathMemoizer.pathFrom(this.myLocation());