创建自定义类

时间:2015-06-10 08:35:42

标签: swift sprite-kit invisible skshapenode

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

当我这样做时(下面的代码),当我将这个类作为一个孩子添加到我的GameScene时,它会在那里注册它(物理体就在那里),但是我看不到形状。

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

    }

}

1 个答案:

答案 0 :(得分:3)

您正在调用super.init()这是指定的初始化程序,但无法定义您希望SKSpriteNode遵循的路径。

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

path = CGPathCreateWithEllipseInRect(CGRect(origin: CGPointZero, size: CGSize(width: radius * 2, height: radius * 2)), nil)

对于圆圈,您可能还想填写:

fillColor = NSColor.grayColor()