javascript - HTML5 自顶向下赛车游戏

标签 javascript html html5-canvas paperjs pathanimator

我正在创建一个基于 HTML5 的自上而下的赛车游戏,为了让赛车在赛道上行驶,我研究了使用两种可能的解决方案(我已经在一定程度上工作):

  1. 论文 JS
  2. 帕他尼玛

从我可以让物体绕路径移动的意义上说,我已经让这两个单独工作,但我遇到的绊脚石是每辆车在赛道的两侧都有自己的起始位置(所以不会始终从路径中的同一点开始)。赛车也需要在第一个弯道后保持单行。

另一个因素是超车。我已经设法使用一些 Javascript 来计算两个对象何时相交,但需要使后面的对象有效地“绕过”前面的对象,然后回到赛车线上。

这里有很多工作要做,但想知道是否有人有一些巧妙的想法来完成上述任何工作?

非常感谢您的帮助!!

谢谢

最佳答案

通常寻路是无状态的;选择哪个起点并不重要。如果所使用的算法不能以一个通用的点作为起始值,目的实际上就落空了。我没有参与你提到的那些,他们可能会支持它。

如果您只围绕赛道构建一条可能的路径,那么每辆车都会跟随。为了让汽车能够在不同的轨道上开始,您只需将它们的位置偏移一个标量,例如它们的车号。也就是说,相对于路线偏移路径的位置(模拟轨道变化)。

然后让他们都选择相同的轨道,就像让一个点告诉“现在转到相同的轨道”一样简单,这会将每个人的标量设置为 1。

对于超车,您通常会使用 Pythagorean theorem 计算两辆车之间的直线距离。 ,当 A 车接近 B 车时,A 车的偏移标量设置为 B 车的偏移量 + 1,这将使其选择外侧轨道。这种过渡当然会被内插/外推以提供流畅的体验。然后当它过去时,再次重置为 1。

关于javascript - HTML5 自顶向下赛车游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25132685/

相关文章:

html - 2 个跨度之间的间距不符合

html - Google Dart:一段时间后应用程序(游戏)变慢

javascript - 无法在 webgl 中加载纹理

javascript - 如何汇总商店电话

javascript - 需要指令 Controller 以及其他所需的 Controller

javascript - 如何在选择事件的 Bootstrap 双列表框中获得回调函数?

jquery - 使用 jQuery 默认选中一个复选框?

javascript - 从 kineticjs 中的容器获取舞台

javascript - 使用带有用户输入的函数时出现问题

javascript - 如何改变球每次从墙上弹起的颜色?