Xcode7场景编辑器SKSpriteNode自定义类

时间:2015-09-03 13:57:15

标签: skspritenode xcode7 sknode

任何人都可以告诉我,如果我这样做吗?使用Xcode 7.beta6我在Xcode场景编辑器中设置SKSpriteNode自定义类。

import UIKit
import SpriteKit

class ZoneNode: SKSpriteNode {
    var zoneID: Int = 0
}

我在场景编辑器中设置了SKSpriteNode,如下所示:

enter image description here

注意 :无论有没有模块名称,我都试过这个,就我所见,它似乎没有任何区别。< / em>的

一切似乎都有效,场景中有8 SKSpriteNode但只有2 ZoneNodes,当我列出场景中的所有孩子时,我得到以下输出。

// CODE
let allChildren = self.children
for eachChild in allChildren {
    if eachChild.isKindOfClass(ZoneNode) {
        print("CHILD: \(eachChild)")
    }
}

// OUTPUT
CHILD: <SKSpriteNode> name:'CUSTOM_SPRITE_2' texture:['nil'] position:{0, 0} scale:{1.00, 1.00} size:{100, 100} anchor:{0.5, 0.5} rotation:0.00
CHILD: <SKSpriteNode> name:'CUSTOM_SPRITE_1' texture:['nil'] position:{0, 0} scale:{1.00, 1.00} size:{100, 100} anchor:{0.5, 0.5} rotation:0.00
SKIPPED: 6

我理解self.children会返回一个SKNode数组[SKNode],如果我将节点转发到ZoneNode,一切都按预期工作,我可以轻松访问属性zoneID

let thisZoneNode = eachChild as! ZoneNode
thisZoneNode.zoneID = 123

我有点困惑为什么打印将节点列为<SKSpriteNode>而不是ZoneNode,尽管这可能仅仅是指回我最初子类化的基类,任何想法?

1 个答案:

答案 0 :(得分:-2)

“自定义类”功能在Xcode beta 6中不起作用,但它似乎在GM版本中正常工作(7A218