从Node - Swift / Spritekit获取纹理名称

时间:2014-11-01 20:37:11

标签: ios swift sprite-kit

我得到了一个改变颜色的块动画,当块中有一个点击时,颜色动画停止,我想得到块停止的颜色。

我注意到SKSpriteNode具有SKTexture属性,但我无法通过调用来引用它:

node.texture

我收到错误,该节点没有名为' texture'的元素,但在调试器中纹理就在那里:

<SKSpriteNode> name:'(null)' texture:[<SKTexture> 'orange@2x.png' (40 x 40)] position: {604.6412353515625, 205.83619689941406} size:{20, 20} rotation:0.0

我想得到&#39; orange@2x.png'节点的名称,所以我可以稍后再比较。

2 个答案:

答案 0 :(得分:4)

您可能只有SKNode节点,它没有texture属性。您应该可以使用可选绑定强制转换为SKSpriteNode,如下所示:

if let spriteNode = node as? SKSpriteNode {
    println(spriteNode.texture)
}

答案 1 :(得分:0)

Sprite-Kit Change Image of Node when screen gets touched

第一个答案可能有所帮助,他这样做的方式似乎很容易和合乎逻辑。

使其成为SpriteNode而不是Node。 首先将纹理定义为变量, 然后将这些变量分配给节点的.texture。