我正在创建一个基于 HTML5 的自上而下的赛车游戏,为了让赛车在赛道上行驶,我研究了使用两种可能的解决方案(我已经在一定程度上工作):
- 论文 JS
- 帕他尼玛
从我可以让物体绕路径移动的意义上说,我已经让这两个单独工作,但我遇到的绊脚石是每辆车在赛道的两侧都有自己的起始位置(所以不会始终从路径中的同一点开始)。赛车也需要在第一个弯道后保持单行。
另一个因素是超车。我已经设法使用一些 Javascript 来计算两个对象何时相交,但需要使后面的对象有效地“绕过”前面的对象,然后回到赛车线上。
这里有很多工作要做,但想知道是否有人有一些巧妙的想法来完成上述任何工作?
非常感谢您的帮助!!
谢谢
最佳答案
通常寻路是无状态的;选择哪个起点并不重要。如果所使用的算法不能以一个通用的点作为起始值,目的实际上就落空了。我没有参与你提到的那些,他们可能会支持它。
如果您只围绕赛道构建一条可能的路径,那么每辆车都会跟随。为了让汽车能够在不同的轨道上开始,您只需将它们的位置偏移一个标量,例如它们的车号。也就是说,相对于路线偏移路径的位置(模拟轨道变化)。
然后让他们都选择相同的轨道,就像让一个点告诉“现在转到相同的轨道”一样简单,这会将每个人的标量设置为 1。
对于超车,您通常会使用 Pythagorean theorem 计算两辆车之间的直线距离。 ,当 A 车接近 B 车时,A 车的偏移标量设置为 B 车的偏移量 + 1,这将使其选择外侧轨道。这种过渡当然会被内插/外推以提供流畅的体验。然后当它过去时,再次重置为 1。
关于javascript - HTML5 自顶向下赛车游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25132685/