在我正在制作的游戏中,我可以获得用户正在触摸的节点
var node = self.nodeAtPoint(positionInScene)
然而,这让我得到一个SKNode(即使用户触摸的节点是SKSpriteNode),我也不能使用node.texture来改变它的纹理。如何将SKNode更改为SKSpriteNode或更改其纹理? (操作在这里不起作用,因为我需要暂停场景,当场景暂停时它们将无法工作)。
答案 0 :(得分:2)
Casting就是你要找的东西。
例如:
如果您确定转换成功并且您的SKNode()实际上是SKSpriteNode,您可以执行以下操作:
let s = SKNode()
let ss: SKSpriteNode = (s as? SKSpriteNode)!
但是,最好在铸造中使用可选的选项:
let ss2: SKSpriteNode? = s as? SKSpriteNode