У меня есть объект, который включает в себя узел SpriteKit:Изменение текстуры узла 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))
I также попытался запустить self.scene!.view!.setNeedsDisplay()
безрезультатно.
Единственное, что нужно иметь в виду, заключающееся в изменении текстуры напрямую или изменении текста с использованием SKAction, - это время. SKActions ставятся в очередь и выполняются в следующем кадре, а изменение свойства текстуры должно вступить в силу немедленно. setNeedsDisplay здесь не требуется. Узлы представлены сценой, а не точкой зрения. Существует большая разница в том, как визуализируются представления и узлы. – Whirlwind