Предполагается, что функция update
в классе ниже, который является подклассом SKSpriteNode, изменяет текстуру класса. Согласно этот ответ SO, обновления свойства texture
достаточно для изменения текстуры SKSpriteNode. Однако этот код не работает.
Есть идеи, почему?
class CharacterNode: SKSpriteNode {
let spriteSize = CGSize(width: 70, height: 100)
var level = 0
init(level: Int) {
self.level = level
super.init(texture: nil, color: UIColor.clear, size: spriteSize)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func update(level: Int) {
self.level = level
self.texture = textureForLevel(level: level)
}
func textureForLevel(level: Int) -> SKTexture {
return SKTexture(imageNamed: "TestTexture")
}