1
이 초기화는 SKShapeNode
을위한 설계된 초기화가 아니며, 그것에 대해 조사했지만이 망할 원을 만드는 정확한 방법을 찾을 수 없었습니다.상속 SKShapeNode
이 초기화는 SKShapeNode
을위한 설계된 초기화가 아니며, 그것에 대해 조사했지만이 망할 원을 만드는 정확한 방법을 찾을 수 없었습니다.상속 SKShapeNode
SKShapeNode.init(circleOfRadius:)
은 SKShapeNode
의 편리한 초기화 프로그램이므로 Swift 이니셜 라이저에서 호출 할 수 없습니다. Swift는 ObjectiveC보다 엄격하게 지정된 이니셜 라이저 패턴을 적용합니다. 불행하게도
, SKShapeNode
의 지정된 초기화 단지 init
입니다 나타납니다, 그래서 당신은 이런 일을 수행해야합니다 :
SKShapeNode
를 서브 클래스에 대한 작동하지만
public class Player: SKShapeNode {
public var playerName : String
private var inventory: [enumObject]
init(nameOfPlayer:String, position:CGPoint, radius: CGFloat) {
playerName = nameOfPlayer
inventory = [enumObject]()
super.init()
self.path = CGPath(ellipseIn: CGRect(origin: .zero, size: CGSize(width: radius, height: radius)), transform: nil)
self.position = position
self.fillColor = SKColor.white
}
// init?(coder:) is the other designated initializer that we have to support
public required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
앞으로 코드를 변경해야하는 경우를 고려하여 SKShapeNode
을 포함하는 SKNode
하위 클래스를 만드는 것이 더 합리적 일 수 있습니다. 이 설정에서 플레이어를 단순한 원 이상으로 나타내려면 플레이어 노드에 노드를 추가하기 만하면됩니다.