あなたはクラスとしてPlayerPlane
を必要とするなら、あなたはこの方法(PlayerPlane
はあなたが使用することができますSKSpriteNode
のサブクラスであるとして、それは初期化子です)、それを行うことができます。
class PlayerPlane: SKSpriteNode {
static func populatePlayerPlane() -> PlayerPlane {
let playerPlane = PlayerPlane(imageNamed: "airplane_1_14")
playerPlane.position = CGPoint(x: 200, y: 200)
playerPlane.zPosition = 50
return playerPlane
}
func fireEnemies() {
print("Attack")
}
}
しかし、あなたはまた、プロトコルを使用して書くことができますあなたは、「その他」の道を添付したいとき、最後に
protocol PlayerPlane {
func fireEnemies()
}
extension SKSpriteNode : PlayerPlane {
func fireEnemies() {
print("Attack")
}
}
extension SKSpriteNode {
static func populatePlayerPlane() -> SKSpriteNode {
let playerPlane = SKSpriteNode(imageNamed: "airplane_1_14")
playerPlane.position = CGPoint(x: 200, y: 200)
playerPlane.zPosition = 50
return playerPlane
}
}
:あなたが他のオブジェクトを作成したい場合に便利ですSKSpriteNode
の拡張子は、/構造体はPlayerPlane
機能を採用しますの機能をPlayerPlane
に追加するには、プロトコルの拡張子を書くこともできます。
class PlayerPlane: SKSpriteNode {
static func populatePlayerPlane() -> PlayerPlane {
let playerPlane = PlayerPlane(imageNamed: "airplane_1_14")
playerPlane.position = CGPoint(x: 200, y: 200)
playerPlane.zPosition = 50
return playerPlane
}
}
protocol FireEnemies {
func fireEnemies()
}
extension PlayerPlane : FireEnemies {
func fireEnemies() {
print("Attack")
}
}