【发布时间】:2015-05-04 22:00:06
【问题描述】:
我正在尝试使用它们的名称枚举节点,检查它们的 y 位置,如果该值小于某个数字,则在它们上运行某些函数。我列举的节点是其他节点的一部分,称为块节点。我这样设置我的游戏是因为在整个块父节点上而不是在每个块上应用动作更方便。这是我的枚举代码:
func chechForPassing(){
var passedBlocks: [SKSpriteNode] = []
enumerateChildNodesWithName("1") { node, _ in
let node = node as! SKSpriteNode
if (node.position.y <= self.frame.size.height*0.3) {
passedBlocks.append(node)
println("1")
}
for node in passedBlocks {
self.fadeEnRemove(node)
}
}
其中 fadeEnRemove 只是我编写的一个函数。打印用于调试目的。这就是我设置我的块的方式:
func block(x: CGFloat, y: CGFloat) {
var block = SKSpriteNode(imageNamed: "obsticle")
kratkowski.size = CGSizeMake(block.frame.size.width*scaleFactor, block.frame.size.height*scaleFactor)
block.position = CGPointMake(x, y)
block.name = "1"
blocksNode!.addChild(block)
}
而区块节点是SKNode。有人知道如何解决这个小问题吗?
谢谢!
【问题讨论】:
-
这里没有足够的信息来调试。 “fadeEnRemove”是做什么的?另外,我不明白为什么要在枚举中嵌套一个带有passedBlocks 的循环。好像应该在外面
-
问题不在于淡入淡出功能,因为我没有在控制台中打印。我使用这个列表是因为在同一个更新下有可能不止一个区块属于这个类别。
-
fade 函数只是一个以 sprite 作为参数并运行删除操作的函数 (SKAction.removeFromParent)
标签: swift sprite-kit