我正在创建一个游戏,我试图使其等待直到所显示的某个精灵的数量等于0之后再继续,我尝试这样做:

NSLog("Number of asteroid 1 nodes: %d", self["Asteroid1Txt"].count)


但是,即使屏幕上未显示该精灵,它也可以为您提供该精灵的编号。

只有在屏幕上实际显示某个子画面的编号时,才可以获取该数字吗?

最佳答案

给精灵节点一个这样的名字:

var mySprite = SkSpriteNode(imageNamed: "nameOfYourImage")
mySprite.name = "spriteToTrack"


然后枚举整个精灵,名称为“ spriteToTrack”,如下所示:

var countSprites = 0
enumerateChildNodesWithName(""spriteToTrack""){node,_ in
     countSprites++
     /* If you want to manipulate this node or  remove it....but dont do it in this loop!
     let tmpNode = node as! SKSpriteNode // Must be the same as mySprite
     */
}

println("I have \(countSprites ) sprites with name spriteToTrack")

09-25 17:20