以下のクラスのupdate
は、SKSpriteNodeのサブクラスであり、クラスのテクスチャを変更することになっています。 this SO answerによれば、texture
プロパティを更新するだけで、SKSpriteNodeのテクスチャを変更することができます。ただし、このコードは機能しません。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")
}
ハァッ、そうです。コードは問題ありません。テストのバグ。 :) – Crashalot