更改SpriteKit节点的纹理

时间:2015-03-22 14:58:39

标签: ios swift sprite-kit skaction

我有一个包含SpriteKit节点的对象:

class PauseButton{
    var playTexture: SKTexture = SKTexture.init(imageNamed: "play")
    var pauseTexture: SKTexture = SKTexture.init(imageNamed: "pause")
    var node: SKSpriteNode

    init(){
        self.node = SKSpriteNode(texture: pauseTexture)
    }
}

我试图通过SKAction改变其纹理,但没有任何反应:

pauseImage.node.runAction(SKAction.setTexture(pauseImage.playTexture))

我也尝试运行self.scene!.view!.setNeedsDisplay() 无济于事。

3 个答案:

答案 0 :(得分:1)

不要使用SKAction。请改用texture属性。它与使用SKAction完全相同,但更容易使用和理解:

pauseImage.node.texture = pauseImage.playTexture

此外,您不必使用SKTexture.init只需使用:

SKTexture(imageNamed: "play")

答案 1 :(得分:1)

尝试:

    var playTexture: SKTexture = SKTexture.init(imageNamed: "play")
    var pauseTexture: SKTexture = SKTexture.init(imageNamed: "pause")
    var node: SKSpriteNode
    let changeTextures = SKAction.animateWithTextures([pauseTexture], timePerFrame: 0.1)
    node.runAction(changeTextures)

答案 2 :(得分:0)

在用于表示节点的类中,我使用了self.run(SKAction.setTexture(ballTexture))

如果您没有使用与我相同的用例,则只需使用nodeName.run(SKAction.setTexture(ballTexture))

干杯。 ?