Swift Can';创建自定义类时看不到我的SKShapeNode

Swift Can';创建自定义类时看不到我的SKShapeNode,swift,sprite-kit,invisible,skshapenode,Swift,Sprite Kit,Invisible,Skshapenode,我一直在做一个有很多节点的项目,我发现我必须创建一个SKNode,并将SKShapeNode作为子节点添加到其中。但是我觉得我应该能够初始化一个自定义的SKShapeNode类 当我这样做的时候(下面的代码),当我把这个类作为一个孩子添加到我的游戏场景中时,它会在那里注册它(物理体在那里),但是我看不到它的形状 import Foundation import SpriteKit class WallNeut: SKShapeNode { required init?(coder a

我一直在做一个有很多节点的项目,我发现我必须创建一个SKNode,并将SKShapeNode作为子节点添加到其中。但是我觉得我应该能够初始化一个自定义的SKShapeNode类

当我这样做的时候(下面的代码),当我把这个类作为一个孩子添加到我的游戏场景中时,它会在那里注册它(物理体在那里),但是我看不到它的形状

import Foundation
import SpriteKit

class WallNeut: SKShapeNode {

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    init(radius: CGFloat) {

        super.init()

        zPosition = 10
        lineWidth = 5
        strokeColor = SKColor.grayColor()

        physicsBody = SKPhysicsBody(circleOfRadius: radius)
        physicsBody?.affectedByGravity = false
        physicsBody?.allowsRotation = false
        physicsBody?.pinned = true

    }

}

您正在调用
super.init()
,它是指定的初始值设定项,但没有定义您希望SKSpritEndode遵循的路径

这可以通过添加以下内容在自定义初始化中完成:

path = CGPathCreateWithEllipseInRect(CGRect(origin: CGPointZero, size: CGSize(width: radius * 2, height: radius * 2)), nil)
对于圆,您可能还希望用以下内容填充:

fillColor = NSColor.grayColor()

成功了!很高兴我没有尝试反复试验。已更改为“灰色”(参考其他类)谢谢。如果这回答了您的问题,您可以将其标记为“已接受答案”。这就是所需要的全部感谢;-)