动态物理机构不会保持静止

时间:2015-02-16 05:42:57

标签: ios game-physics scenekit

对于测试,我创建了两个SCNBox对象和一个SCNFLoor。

我现在设置了scene.physicsWorld.gravity = SCNVector3Make(0,-9.8,0);

我在地板上放置了一个立方体,在另一个立方体的顶部放置了一个立方体。

所有三个节点都没有旋转,而physicsBody.friction值设置为1.0。

我在3点测量节点速度,:didBeginContact,didUpdateContact和didEndContact。如果线性或角速度不为零,我将其与每个动态节点的velocityFactor和AngularVelocityFactor属性一起设置为零。

无论这些点如何,物体都会继续移动,(尽管速度很慢),但问题就在那里。

有人能指出我正确的方向,我错过了什么?文档规定摩擦值为1将防止滑动。事实显然并非如此。

我正在寻找一些编码帮助,我可以在每个周期更新其位置之前将节点速度归零,或者防止滑动发生。

1 个答案:

答案 0 :(得分:0)

解决方案是确保对象不在SCNSceneRendererDelegate方法中移动: - (void)renderer:(id)aRenderer updateAtTime:(NSTimeInterval)时间 这是物理前模拟,您可以通过这种方式确保静止物体保持静止。它不理想,但没有物理模拟器。