【问题标题】:Why even use kinematic bodies? box2d为什么还要使用运动体? box2d
【发布时间】:2017-03-06 20:32:56
【问题描述】:

为什么你甚至应该使用运动学体而不是没有重力的动态体?我的意思是动态体也可以与静态体发生碰撞,并具有运动学体所没有的其他一些可调节参数,对吧。因此,我真的很想听听您为什么要这样做,以及它是否能带来一些优势。

非常感谢您的宝贵时间!

【问题讨论】:

  • 您是否尝试使用搜索引擎搜索“运动体”一词?因为对我来说,最重要的结果是讨论您的问题的博客文章
  • official docs 也这样说:“运动物体非常适合程序员想要完全控制物体运动的东西,例如在平台游戏。”
  • 我对 Louis 的回答发表了评论,请看一下。谢谢,也感谢您的 cmets :-)
  • 我看过评论,这让你的问题不清楚——你想让有问题的身体发生碰撞吗?如果是,那么您不能使用运动体,如果不是,那么使用动态体将是一种浪费(就设置代码而言)和潜在的成本性能(物理引擎可以以不同的方式处理运动体的更新,因为它们具有较少的约束)

标签: c++ box2d


【解决方案1】:

这是你想让b2World::Step 对身体做什么的问题。基本上这个方法的body相关后置条件如下:

  • 静止的物体不动。
  • 动体根据其先前的速度移动。
  • 动态物体的移动基于其先前的速度、重力、施加的力、施加的冲量、质量、阻尼以及它们在遇到碰撞时的固定装置的恢复和摩擦值。

因此,当您唯一想让身体发生的事情是让它根据您给它的速度移动时,运动学身体会很有用。

【讨论】:

  • 但是在我只想使用速度移动身体的情况下,我不能也像运动体一样使用没有重力的动态体吗?谢谢
  • @asd 是的。动态体与其他动态体的交互也不同于运动学体。也许您想在步骤中如何进行交互。或者也许你没有。运动学选择为 step 方法如何处理与其他物体的交互提供了不同的选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多