【问题标题】:Can I slow down or stop physics in SpriteKit?我可以在 SpriteKit 中减慢或停止物理吗?
【发布时间】:2014-03-31 01:09:13
【问题描述】:

在我看来,一个旨在简化的框架应该有这种方法,而不是像我现在所做的那样从物理核算中删除每个节点:

[self enumerateChildNodesWithName:@"live" usingBlock:^(SKNode *node, BOOL *stop){
        [node removeFromParent];
}];

如果这是一个菜鸟问题,我很抱歉,我刚刚开始使用 SpriteKit。谢谢!

【问题讨论】:

    标签: ios sprite-kit skphysicsbody sknode


    【解决方案1】:

    它有“那个方法”。如果您查看SKPhysicsWorld reference,您会发现speed 属性。 Speed = 0 表示暂停。

    【讨论】:

      【解决方案2】:

      如果你想暂停场景,你可以这样做:

      self.paused = YES;

      这也会在您添加到场景中的所有节点上扩散。

      可以在单个节点上设置相同的标志。暂停节点的节点不能很好地进行碰撞检测,并且在您取消暂停它们之前不会运行任何基于动作的动画。

      self.physicsWorld 有一些属性可能有助于“减慢物理速度” -

      self.physicsWorld.gravity = CGVectorMake(0,-4.9);

      例如,将是真实世界重力的 50%。实际数字并不重要,所以一定要调整重力值,直到感觉合适为止。这比您可以使用的下一个选项更受欢迎:

      self.physicsWorld.speed = x;

      其中 x 的默认值为 1,而 0 将与暂停所有物理计算相同。

      改变重力是首选,因为它也不会让物体反弹得更慢(例如)。

      【讨论】:

        【解决方案3】:

        SKNode 有多种移除子节点的方法。

        你可以在这里看到他们https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKNode_Ref/Reference/Reference.html#//apple_ref/doc/uid/TP40013023-CH1-SW40

        你可以...

        removeAllChildren
        

        或者

        removeChildrenInArray:
        

        等等……

        编辑

        等等,你在问什么?您的标题和问题不匹配。

        【讨论】:

        • 我实际上是在询问 pshysics 本身以及它是否可以减慢和/或停止
        • 如何减缓重力下拉
        猜你喜欢
        • 2020-11-24
        • 1970-01-01
        • 1970-01-01
        • 2010-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        相关资源
        最近更新 更多