预加载还是不加载?

时间:2017-02-21 16:45:31

标签: swift performance sprite-kit skspritenode

我正在制作益智游戏,我多次使用几种类型的精灵。所以我对游戏性能有疑问。哪个更好,稍后在for/in方法中在setup()循环中创建精灵,或者在类的初始化程序中预加载精灵,然后只复制setup()中的精灵?例如:

func setup() {
    for i in 0...10 {
       let sprite = SKSpriteNode(imageNamed: "FirstSpriteName")
       sprite.position = etc...
    }
}

或在初始化类时预加载精灵:

let firstSprite = SKSpriteNode(imageNamed: "FirstSpriteName")

以及后来setup() func:

func setup() {
    for i in 0...10 {
        let sprite = firstSprite.copy()
        sprite.position = etc...
    }
}

1 个答案:

答案 0 :(得分:2)

如果您多次使用同一图像,最好像这样加载它:

let texture = SKTexture(imageNamed: "SpriteName")

然后在您需要时使用它:

let sprite = SKSpriteNode(texture: texture)

这样它只会加载一次纹理,但许多精灵会使用它。