代码之家  ›  专栏  ›  技术社区  ›  sowee15

在足球场上模拟人类跑步

  •  9
  • sowee15  · 技术社区  · 15 年前

    然而,我正在寻找实现简单2d人体运动的最佳方法。

    例如,当转向力与当前速度或航向矢量之间的cos(角度)小于0.5时,玩家不应“转向”(或简单地将从转向力计算的加速度相加)到其当前速度,因为玩家看起来就像一辆汽车。当方向发生重大变化时,人类会减速,当速度足够慢时,人类会开始向新的方向加速。

    有人对如何实现这种行为有什么建议和想法吗?提前谢谢。

    4 回复  |  直到 15 年前
        1
  •  4
  •   user181351 user181351    15 年前

    使其快速改变方向,但没有完美的摩擦。超级马里奥

    但是脚不应该滑动-对脚使用程序动画

        2
  •  3
  •   Carlos Aguayo    15 年前

    这里有一个链接,可以为您指出正确的方向: http://wiki.robocup.org/wiki/Main_Page

        3
  •  2
  •   kame Christian C. Salvadó    15 年前

    也许你可以计算曲率。如果曲率值太大,则速度会减慢。 http://en.wikipedia.org/wiki/Curvature

        4
  •  1
  •   momo    13 年前

    低速时,人可以打开一角硬币。在高速下,只有非常轻微的转弯不需要减速。因此,转弯的速度和半径具有很强的相关性。

    下面是我将如何着手做这件事。如果你喜欢公制,我为英制单位道歉。

    1. 有记录以来人类最快的速度只有28英里/小时。每个人体单位的个人最高速度应在1至28 mph之间。
    2. 创建一个由29个元素组成的表格,列出一个人在直线上以每英里每小时的速度行驶时的最大加速度和减速度。它不一定是精确的——只是每个值的近似加速和减速值。创建29元素表的快速、中等和慢速版本,并将每个人分配到其中一个表中。选择的表格可能会映射到机组的最高速度,因此最大速度为10英里/小时的机组将是一个缓慢的加速器。
    3. 创建一个29元素的表格,列出人类在该英里/小时(0-28)时可以转弯的最锐利半径。

    现在,当设置每个人体单元的动画时,如果您有目标信息,并且必须从中选择加速度,则任务会更困难。如果你只需要一个力向量,那就容易多了。让我们从力向量开始。

    对于有目标且需要选择要应用的力的路径版本,问题有点不同,甚至更难。我现在没有主意了,但我只想说,考虑到人类已经在最高速度下逃离目标的示例条件,将有一个最佳时间路径,一方面,速度足够慢,同时转向以完成到目标的完美弧线,另一方面,完全停止,完全旋转,直奔目标。