创建自定义时看不到我的 SKShapeNode class
Can't see my SKShapeNode when creating a custom class
我一直在处理一个有很多节点的项目,我发现我必须创建一个 SKNode,并在其中添加一个 SKShapeNode 作为 child。但我觉得我应该能够初始化 SKShapeNode 的自定义 class。
当我这样做(下面的代码)时,当我将 class 作为 child 添加到我的 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
}
}
您正在调用 super.init()
这是指定的初始化程序,但没有定义您希望 SKSpriteNode 遵循的路径。
这可以在您的自定义 init 中通过添加来完成:
path = CGPathCreateWithEllipseInRect(CGRect(origin: CGPointZero, size: CGSize(width: radius * 2, height: radius * 2)), nil)
对于圆圈,您可能还想用 :
填充它
fillColor = NSColor.grayColor()
我一直在处理一个有很多节点的项目,我发现我必须创建一个 SKNode,并在其中添加一个 SKShapeNode 作为 child。但我觉得我应该能够初始化 SKShapeNode 的自定义 class。
当我这样做(下面的代码)时,当我将 class 作为 child 添加到我的 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
}
}
您正在调用 super.init()
这是指定的初始化程序,但没有定义您希望 SKSpriteNode 遵循的路径。
这可以在您的自定义 init 中通过添加来完成:
path = CGPathCreateWithEllipseInRect(CGRect(origin: CGPointZero, size: CGSize(width: radius * 2, height: radius * 2)), nil)
对于圆圈,您可能还想用 :
填充它fillColor = NSColor.grayColor()