世界!我有一个Actions
课程,我在我的精灵套装游戏中保存所有动作,动画和声音播放。因此,在我的所有SKNode
,SKScene
,SKSpriteNode
类中,我始终初始化此Actions
类。这对性能有益吗?或者我必须初始化一次,例如在GameViewController
中,然后将此类的副本传递给我需要的所有其他类?
答案 0 :(得分:2)
正如Fogmeister在评论中提到的,你可以使用静态方法来实现这一点。这也有助于提高绩效。
如果您查看SKAction文档,您会注意到它也使用了类变量和方法。
一般情况下,如果您不需要多次实例化一个类,这是一个完美的例子,而不是最好使用静态/类方法或单例。
您可以使用类,结构或枚举。我更喜欢使用枚举,因为你不能意外地实例化它们或者需要添加一个私有的初始化器。
// Class
class SKActionHelper {
static var someProperty = ...
static func someMethod() {
...
}
}
// Struct
struct SKActionHelper {
static var someProperty = ...
static func someMethod() {
...
}
}
// Enum
enum SKActionHelper {
static var someProperty = ...
static func someMethod() {
...
}
}
现在,您可以在项目的任何位置调用这些属性或方法,而不必每次都实例化该类。
SKActionHelper.someProperty = ...
SKActionHelper.someMethod()
希望这有帮助