【问题标题】:Smoothly change direction of an SKPhysicsBody's momentum平滑地改变 SKPhysicsBody 的动量方向
【发布时间】:2016-08-01 10:47:11
【问题描述】:

我的场景中有一个SKPhysicsBody,每当用户按下按钮使其向前移动时,我都会对其施加冲动。由于它的特性,单击它不会移动太多并且减速相当快,但是多次单击它会加快速度,正如预期的那样。

我有另一个按钮供用户点击,以便身体可以改变它的方向。我当前的实现对身体施加了一个角脉冲来旋转它 - 同样,身体的属性意味着如果用户多次快速点击旋转按钮,那么身体将需要更长的时间才能停止旋转。

目前,当身体旋转时,它的动量不会改变方向(这是我对任何物理库的期望)——为了让用户真正让身体朝着它所面对的新方向移动,他们必须疯狂地按下前进按钮,试图减慢它之前的动力。当然,在高速行驶时,车身似乎会打滑。

如何为车身实现更多“类似汽车”的物理特性? “像汽车一样”,因为当身体旋转时,它的动量会在每个间隔向新方向平滑更新。这可以简单地完成,还是我需要使用临时绳索、重力场或涡流?

【问题讨论】:

  • 你试过 applyForce(_:at:) 吗?
  • @SimonePistecchia 没有太大区别 :(

标签: ios sprite-kit skphysicsbody momentum


【解决方案1】:

在 SpriteKit 中应用力或冲量是根据全局坐标系应用的,而不是目标节点的局部坐标系。

You'll need to manually rotate the vector of force to match the node's rotation, before applying it.

【讨论】:

  • 对,我已经很好地工作了,我的问题是关于改变动量的方向,而不是如何向前施加脉冲
  • 对不起,我误会了。您可以通过旋转车身的velocity 属性以匹配汽车的属性来获得结果。
  • 实际上这听起来很合理,唯一的办法就是让它变得顺畅。我想我​​可以在每次更新时检查汽车的旋转属性并更改它的速度以匹配,尽管这听起来效率低下
猜你喜欢
  • 1970-01-01
  • 2014-05-16
  • 2016-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
相关资源
最近更新 更多