【问题标题】:Is there a way to pause all sprites with a certain zPosition and below?有没有办法暂停具有特定 zPosition 及以下的所有精灵?
【发布时间】:2016-11-23 07:51:13
【问题描述】:

我正在尝试暂停游戏中的许多精灵。有没有办法可以暂停具有给定zPosition 的精灵或给定zPosition 以下的所有精灵?这些精灵也可能在更新方法中更新物理体。

【问题讨论】:

  • 这当然是可能的。您几乎没有选择,如果您在创建之前知道它们的 zPosition,则可以将它们放入一个父级并暂停父级。如果你需要暂停它们的物理体,你必须通过节点枚举。此外,如果您不能将这些节点放入单个父节点中,请执行 Alessandro 的回答中指出的操作
  • @Whirlwind 很棒的评论,我同意一切。
  • @AlessandroOrnano 也如你所说,名字搜索也可以。

标签: swift sprite-kit swift3


【解决方案1】:

你可以使用下面这个例子的代码来完成这个任务:

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
        }
     }
}

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

【讨论】:

    猜你喜欢
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    相关资源
    最近更新 更多