1
このinitはSKShapeNode
のための設計されたinitではありません。私はそれについて調べましたが、この邪魔な円を作成する正しい方法を見つけることができませんでした。継承SKShapeNode
このinitはSKShapeNode
のための設計されたinitではありません。私はそれについて調べましたが、この邪魔な円を作成する正しい方法を見つけることができませんでした。継承SKShapeNode
SKShapeNode.init(circleOfRadius:)
はSKShapeNode
の便利な初期化ツールなので、Swift初期化子から呼び出すことはできません。 Swiftは、Objective Cよりも厳密に指定イニシャライザパターンを強制します。残念ながら
は、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
サブクラスを作成する方が意味があります。この設定では、プレーヤを単なるサークル以上のものとして表現したい場合は、プレーヤノードにノードを追加するだけです。