ios - 枚举不同类型的子节点

标签 ios swift

我正在尝试枚举所有子类化为 VillainSquirrel 的 Sprite 节点(如下所示),并且我正在尝试访问特定于 VillainSquirrel 类的属性...但是,我遇到了困难。

这是我遇到的错误:

Tuple types '(SKNode, UnsafeMutablePointer<ObjCBool>)' and '()' have a different number of elements (2 vs. 0)

这是我尝试枚举节点作为 VillainSquirrel 的方法:

self.enumerateChildNodesWithName("villainType1") {
        node as! VillainSquirrel, stop in
        if (node.position.y > self.size.height){
            node.brownMarker.position = CGPointMake(node.position.x, self.size.height - 10)
            node.brownMarker.zPosition = 1
            self.addChild(node.brownMarker)
        }
    }

这是我的 VillainSquirrel 类(或者至少是它的开头):

class VillainSquirrel: SKSpriteNode {
  var brownMarker = SKSpriteNode()
  var brownMarkerVisible: Bool

  override init(texture: SKTexture!, color: SKColor, size: CGSize) {

    self.brownMarker.zPosition = 1
    self.brownMarker.xScale = 0.25
    self.brownMarker.yScale = 0.25
    self.brownMarker = SKSpriteNode(imageNamed:"brownMarkerTrans.png")
...

如果您能提供任何帮助,我们将不胜感激!谢谢!

最佳答案

想通了!

   self.enumerateChildNodesWithName("villainType1") {
        node, stop in

        let realnode = node as! VillainSquirrel
        if (node.position.y > self.size.height){
            realnode.brownMarker.position = CGPointMake(realnode.position.x, self.size.height - 10)
            realnode.brownMarker.zPosition = 1
            if (!realnode.brownMarkerVisible){
                self.addChild(realnode.brownMarker)
                realnode.brownMarkerVisible = true
            }
        }
        else if (realnode.brownMarkerVisible){
            realnode.brownMarkerVisible = false
            realnode.brownMarker.removeFromParent()

        }
    }

我只需要将节点作为我在 block 中的子类 spriteNode 进行类型转换,我不能用节点来完成,停止

关于ios - 枚举不同类型的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33663811/

相关文章:

ios - 当用户向下滚动时, Material float 操作按钮应不可见,向上滚动时应可见

swift - 关联类型的类型推断在子协议(protocol)中不起作用

ios - Swift:为什么即使我使用计时器更改其文本属性,我的标签也不会更新?

ios - 更新到 Xcode 6.3 会破坏应用程序 - Google GTLTouchStaticLib "not equal to a null pointer is always true"

ios - 如何以编程方式获取 Face ID 系统图标?

ios - 我以为我想要一个无限循环。我想要什么样的循环?

ios - 如何使用 iOS7 Text Kit 将文本环绕在附件周围?

swift - 如何使用不断变化的唯一标识符将用户数据存储在数据库中

ios - 使用 UIWebView 访问 SoundCloud 网站中当前轨道的 URL

iphone - 在for循环中取消NSOperation?