我有一个包含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()
无济于事。
答案 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))
干杯。 ?