我正在尝试枚举所有子类化为 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/