【问题标题】:Dynamic physics bodies will not remain stationary动态物理物体不会保持静止
【发布时间】:2015-04-16 14:18:02
【问题描述】:

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

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

我在地板上放了一个立方体,在另一个上面放了一个立方体。

所有三个节点的旋转为零,physicsBody.friction 值设置为 1.0。

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

不管这些点中的任何一点,对象都会继续移动(尽管速度很慢),但问题就在那里。

有人能指出我正确的方向吗,我错过了什么?该文档指出摩擦值为 1 将防止滑动。显然不是这样。

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

【问题讨论】:

    标签: ios game-physics scenekit


    【解决方案1】:

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

    【讨论】:

    • 你能写一个简短的例子来说明你在 updateAtTime 中所做的事情吗?我也无法调用该类,我正在设置委托。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多