【发布时间】:2014-05-05 00:50:41
【问题描述】:
在我的SpriteKit 项目中,我正在学习使用美妙的内置物理引擎。我通过使用附加到节点的SKPhysicsBody 实例来实现这一点,并且到目前为止效果很好。我当前的设置是当我添加一个节点时,我将其physicsBody 的velocity 向量设置为某个恒定速度。尽管手动将速度设置为某个固定值,但在节点碰撞几秒钟后,它们的速度会降低。我认为这是默认特性,因为它模拟了现实生活中的物理(通过多次碰撞造成的能量损失)。 我想停止这种行为。例如,我希望尽管有无数次碰撞,但所有能量都可以完美“保存”并且没有速度损失。以下是我尝试过的一些无济于事的事情。
physicsBody.linearDamping = 0;physicsBody.friction = 0;
这甚至是physicsBody 属性,还是这种行为源于SKScene 的physicsWorld 属性上的属性?
【问题讨论】:
-
您无法像您描述的那样保持他们的势头。您可以做几件事来保持稳定的速度。你可以做很多事情。一种是你可以对你的物体施加不间断的速度并限制它的速度。
-
您可以将所有physicsBodies的collisionBitMask设置为零。这将使他们继续前进,就好像他们没有与任何东西发生碰撞一样。但是,您应该设置contactTestBitMask,因为仍然会调用联系人代表。如果您确实希望物体发生碰撞,您可以在接触代表中设置它们的速度
-
@sangony 我找到了答案,如果你仍然感兴趣,我会发布。
标签: objective-c sprite-kit physics skphysicsbody skphysicsworld