有没有一种方法可以暂停所有zPosition和以下的精灵?

3

我正在尝试暂停游戏中的许多精灵。是否有一种方法可以暂停具有给定zPosition或所有低于给定zPosition的精灵?这些精灵可能还在update方法中更新物理体。


1
当然可以。如果您在创建节点之前知道它们的zPosition,则可以将它们放入一个父节点中并暂停该父节点。如果您需要暂停它们的物理体,则必须枚举这些节点。如果不能将这些节点放入单个父节点中,则应按照Alessandro答案中指出的做法。 - Whirlwind
@Whirlwind 很棒的评论,我完全同意。 - Alessandro Ornano
@AlessandroOrnano,另外你说的,也可以使用按名称搜索。 - Whirlwind
1个回答

4
您可以使用如下示例中的代码来完成此任务:
self.enumerateChildNodes(withName: "//*") {
     node, stop in
     if node.zPosition > 1 && node.zPosition < 4 {
        // do whatever you want with these nodes (sprites, labels..)
        if node is SKSpriteNode { // you can use also this filter to pause only SKSpriteNode types
           node.isPaused = true
        }
     }
}

您还可以决定使用特定的“名称”而不是在第一行中使用“*”来仅对具有此名称的节点进行分组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接