将 SKSpriteNode 的属性用于子类
Using properties of SKSpriteNode for subclass
这更像是一个关于 classes 和 Swift 中的继承的一般问题 4.
在Apple的开发指南中,自定义class("anySuperclass")的子class("anySubclass")可以直接access/inherit父属性,例如:
anySubclass.anyProperty = xyz(anyProperty 仅在 Superclass 中定义)
我的问题:
我目前正在使用 SpriteKit 开发我的第一个游戏,并想创建 SKSpriteNode 的子classes,其中一个应该是 clBackGround。
如果我只是将它定义为SKSpriteNode的子class,即
class clBackGround:SKSpriteNode {
}
我认为我可以像这样简单地使用与 SKSpriteNode 关联的所有属性:
var bg1 = clBackGround()
bg1.size = ...
.
.
.
但这似乎不起作用。所以我的问题是:
我是否需要初始化我想在 clBackGround 中使用的 SKSpriteNode 的所有属性(使用指定的初始化程序)?然后如何将图像分配给此子实例class?
如有任何帮助,我们将不胜感激!
不确定这是否是您要问的,但是,一般来说,如果您创建对象的子类,则无需执行任何特殊操作即可访问超类的属性。它们将以通常的方式初始化。
但是,如果您有自己的子类初始化器,则必须确保以正确的方式调用超类的初始化器。
如果是 SKSpriteNode 的子类,如果您为子类定义自己的初始化程序,该初始化程序将需要调用指定的超类初始化程序,该初始化程序传入用于精灵的纹理、颜色和大小:
init(enemyType:String) {
let texture = SKTexture(imageNamed: "enemy_\(enemyType)")
let color = UIColor.black
let size = texture.size()
super.init(texture: texture, color: color, size: size)
}
这更像是一个关于 classes 和 Swift 中的继承的一般问题 4.
在Apple的开发指南中,自定义class("anySuperclass")的子class("anySubclass")可以直接access/inherit父属性,例如:
anySubclass.anyProperty = xyz(anyProperty 仅在 Superclass 中定义)
我的问题:
我目前正在使用 SpriteKit 开发我的第一个游戏,并想创建 SKSpriteNode 的子classes,其中一个应该是 clBackGround。
如果我只是将它定义为SKSpriteNode的子class,即
class clBackGround:SKSpriteNode {
}
我认为我可以像这样简单地使用与 SKSpriteNode 关联的所有属性:
var bg1 = clBackGround()
bg1.size = ...
.
.
.
但这似乎不起作用。所以我的问题是:
我是否需要初始化我想在 clBackGround 中使用的 SKSpriteNode 的所有属性(使用指定的初始化程序)?然后如何将图像分配给此子实例class?
如有任何帮助,我们将不胜感激!
不确定这是否是您要问的,但是,一般来说,如果您创建对象的子类,则无需执行任何特殊操作即可访问超类的属性。它们将以通常的方式初始化。
但是,如果您有自己的子类初始化器,则必须确保以正确的方式调用超类的初始化器。
如果是 SKSpriteNode 的子类,如果您为子类定义自己的初始化程序,该初始化程序将需要调用指定的超类初始化程序,该初始化程序传入用于精灵的纹理、颜色和大小:
init(enemyType:String) {
let texture = SKTexture(imageNamed: "enemy_\(enemyType)")
let color = UIColor.black
let size = texture.size()
super.init(texture: texture, color: color, size: size)
}