我正在实施一个版本的Lode Runner(this version),但是我不确定如何重现小伙伴协同工作以转移玩家的效果,可以使用A *,还是有更好的方法?对于小兵(例如boids)之间是否有更好的协同作用算法,或者最好的解决方案是简单地为每个算法分别应用算法?
答案 0 :(得分:4)
供您参考的源代码:https://github.com/SimonHung/LodeRunner
您可以查看 lodeRunner.guard.js :Enemy的AI算法,从C语言移植,由Douglas E. Smith编辑。
答案 1 :(得分:0)
路径是游戏实体所遵循的线性线,因此在像Lode Runner这样的游戏中,你会有一些非常简单的路径。
首先,我建议您编写某种Plan对象,该对象可以传递给实体缓冲区中的任何实体(播放器除外),并可以相应地执行。它可能只是一系列指令,如['left', 'up', 'right']
或仆从必须前往的有效坐标。当然,这个坐标必须根据你为你的小兵旅行而加载的路径来解析有效性。
其次,你需要预测。你需要预测玩家可能最终的所有(极端)位置以及他们到达那里的时间。例如,如果玩家沿着路径路线X行进的速度最快,最终在坐标Y处,则需要Z秒。当然,如果玩家没有在最佳时间内完成任务,那么小兵就会调整,然后摧毁玩家。
三分,难度。您可能需要编写代码,以便AI预测和路径中的代码变得更加复杂,难度更大。我确定你已经听说过人为的困难,这只是路径和预测中值的修改。
最后也是最重要的是合作。它基本上只是一种算法,它将所有小兵的位置相对于玩家的位置考虑在内,并组织他们在他到达目的时切断所有可能的路径。这可以用很多方式编写,我不能在这里提供一个例子,因为我不知道你正在使用什么语言。
答案 2 :(得分:0)
我看到的大多数代码都遵循一个简单的算法。
如果玩家在左边,你可以向右走,那就走吧。
否则,如果玩家在左边,你可以向左走,那就向左走。
否则,如果玩家在左边,你可以上去,上去。
否则,如果玩家在左边,你可以下去,那就下去吧。
否则,如果你可以移动,那么随机移动。
否则不要动。
让僧侣与此相反,如在Load Runner Online中,你需要检查点,其他算法强制他们以不同的方式移动。