如何获取场景中不可见的 SKSpriteNode 的节点数?

Posted

技术标签:

【中文标题】如何获取场景中不可见的 SKSpriteNode 的节点数?【英文标题】:How do I get the node count of SKSpriteNodes not visible in the scene? 【发布时间】:2015-03-25 04:57:59 【问题描述】:

如果你有:

skView.showsNodeCount = true

在您的 GameViewController 中,您可以看到在场景中可见的节点的节点数,但是一旦节点离开场景,该计数器就不再计算它。有没有办法查看场景中有多少可见和不可见的节点?这是在 Xcode 6 中使用 Swift 编码的 SpriteKit。

谢谢,

-卡勒姆-

【问题讨论】:

【参考方案1】:

因为showsNodeCount 只显示屏幕上的节点,所以您必须创建自己的SKSpriteNode 类并创建类似addMyChild 的方法。并且每当您调用addMyChild 方法时,您都会将计数器增加一,以便您手动知道存在多少个节点。例如:

func addMyChild(node:SKSpriteNode)
    self.addChild(node)
    nodeCount++

【讨论】:

这有点用,但整个目的是确保屏幕上没有任何意外的节点堆积。我想我可以像这样计算它们,然后在删除节点时从中减去。它不会是完美的,但我可以让它工作。谢谢。 刚试了一下,运行一分钟后发现有大约 50 个节点,我忘了在屏幕外删除。效果很好,再次感谢。

以上是关于如何获取场景中不可见的 SKSpriteNode 的节点数?的主要内容,如果未能解决你的问题,请参考以下文章

SKScene - 如何从 SKSpriteNode 获取类

使用场景编辑器获取 SKSpriteNode 的 userData

有没有办法从代码中获取放置在场景编辑器中的 SKSpriteNode 的当前位置? - 精灵套件

SKSpriteNode 从场景中移除后如何停止音频(Swift)?

如何使用该节点的自定义类检测在单独场景中创建的 skspritenode 上的触摸

如何从 SKSpriteNode 获取 UIImage