我创建了这个SpriteKitNode:
let examp = examps[examps.count-1] // examps is a global array with SKNodes inside of it
但是,当我尝试更改其纹理时,会收到此错误:
examp.texture = SKTexture(imageNamed: "examp2")
类型“ SKNode”的值没有成员“纹理”
但是,它的值为“纹理”,所以我不知道解决方案是什么。
https://imgur.com/a/s1V0XZF
最佳答案
examps
是[SKNode]
。这意味着examp
是SKNode
,而不是SKSpriteNode
,即使examps[examps.count-1]
恰好持有SKSpriteNode
。
为了访问texture
属性,您需要将examps[examps.count-1]
的结果强制转换为SKSpriteNode
。
if let examp = examps[examps.count-1] as? SKSpriteNode {
examp.texture = SKTexture(imageNamed: "examp2")
}