更改作为 SKSpriteNode 的 SKNode 的纹理

Change texture of SKNode that is an SKSpriteNode

在我制作的游戏中,我可以获得用户正在触摸的节点

var node = self.nodeAtPoint(positionInScene)

然而,这让我得到了一个 SKNode(即使用户触摸的节点是一个 SKSpriteNode),我不能使用 node.texture 来改变它的纹理。如何将该 SKNode 更改为 SKSpriteNode 或更改其纹理? (动作在这里不起作用,因为我需要暂停场景,当场景暂停时它们将不起作用)。

选角正是您要找的。

例如:

如果您确定转换成功并且您的SKNode()实际上是一个SKSpriteNode,您可以执行以下操作:

let s = SKNode()
let ss: SKSpriteNode = (s as? SKSpriteNode)!

但是,在转换中特别使用可选的总是更好:

let ss2: SKSpriteNode? = s as? SKSpriteNode