【问题标题】:HTML5 Top Down Racing GameHTML5 自上而下的赛车游戏
【发布时间】:2014-09-27 18:05:01
【问题描述】:

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

  1. 论文 JS
  2. 路径动画师

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

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

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

您的帮助将不胜感激!

谢谢

【问题讨论】:

    标签: javascript html html5-canvas paperjs pathanimator


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      您需要一个清晰的坐标系以避免混淆。
      在这种情况下,您应该将“x”作为从起点到当前位置基点的距离。 和 y 偏移,局部垂直于曲线,在汽车和曲线之间。

      这样,很多事情变得更容易看到/做。
      如果 y = 0,您知道汽车在中心曲线上。
      要知道您是否可以超车,您必须使用 ( overTaker.y +- overtaker.width/2 , overTaken.y +- overTaken.width/2, roadWidth) 进行一些数学运算。
      事实上,使用这个坐标系的常规 BBox 测试应该足以测试碰撞。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        • 2016-10-13
        • 2023-03-19
        • 2014-07-24
        相关资源
        最近更新 更多