在足球比赛中,我正在使用转向行为来计算转向力。这部分还可以。 但是,我正在寻找实现简单的2d人类运动的最佳方法。
例如,当转向力与当前速度或航向矢量之间的cos(角度)低于0.5时,玩家不应该“转向”(或简单地将由转向力计算的加速度)添加到其当前速度,因为它看起来好像玩家是车辆。一个人,当方向发生重大变化时,速度变慢,当速度变慢时,就开始加速向新方向发展。
有没有人对如何实现这种行为有任何建议和想法?提前谢谢。
答案 0 :(得分:4)
让它快速改变方向,但没有完美的摩擦力。 EG super mario
编辑但脚不应滑动 - 使用脚的程序动画
答案 1 :(得分:3)
这已经在一项名为“Robocup”的计划中进行了研究和开发。他们有一个模拟2D联盟,应该与你想要完成的东西非常相似。
这是一个指向正确方向的链接: http://wiki.robocup.org/wiki/Main_Page
答案 2 :(得分:2)
也许你可以计算曲率。如果曲率值很大,速度会减慢。 http://en.wikipedia.org/wiki/Curvature
答案 3 :(得分:1)
在低速时,人类可以打开一角硬币。在高速时,只需非常轻微的转动就不需要减速。因此,转弯的速度和半径密切相关。
当瞄准目标时,人的减速程度实际上是判断调用,而不是自动计算。一个人几乎可以完全停下来,急转弯,然后直接向目标跑去。另一个人可能只会减慢一点并产生一个宽的弯曲弧 - 即使这会增加到目标的总长度。唯一需要注意的是,如果所需的目标位于当前速度的曲线半径范围内,那么唯一合理的路径就是减速,因为它需要一个远离目标的宽回路才能到达它(而不是无休止地环绕它) )。
以下是我将如何去做。如果您更喜欢公制,我会为帝国单位道歉。
现在,在为每个人体单元设置动画时,如果您有目标信息并且必须从中选择加速度,那么任务就更难了。相反,如果你只有一个力矢量,那就更容易了。让我们从力矢量开始。
我知道细节会很困难,但我认为这是一个好的开始。
对于您有目标且需要选择要应用的力的路径版本,问题会有所不同,甚至更难。我现在已经没有想法 - 但是可以说,考虑到人类已经远离目标顶部的示例条件,一方面会有一条最佳时间路径,转向完成一个完美的弧线到目标,然后完全停止,完全旋转并直接跑到目标。