Swift Can';创建自定义类时看不到我的SKShapeNode
我一直在做一个有很多节点的项目,我发现我必须创建一个SKNode,并将SKShapeNode作为子节点添加到其中。但是我觉得我应该能够初始化一个自定义的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
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()
成功了!很高兴我没有尝试反复试验。已更改为“灰色”(参考其他类)谢谢。如果这回答了您的问题,您可以将其标记为“已接受答案”。这就是所需要的全部感谢;-)