2017-07-31 48 views
0

非功能代码:斯威夫特SpriteKit纹理

if sprite.texture == "texture" { 
(code) 
} 

我试图访问该精灵的纹理来运行代码,当精灵都有特定的质地。目前,纹理仅出现在我的资产中,因此是圆括号。任何人都可以弄清楚如何以一种可行的方式重写这段代码?

+0

这不是一个好设计。改用每个sprite使用userData。 –

+1

[在Swift 3中获取SKSpriteNode的文件名]可能的重复(https://stackoverflow.com/questions/41272365/getting-the-filename-of-an-skspritenode-in-swift-3) – Knight0fDragon

+0

我投票支持由于它回答你的问题而关闭,但事实上,我同意El Tomato,重新设计你的方法来更好地解决这个问题 – Knight0fDragon

回答

1

sprite.textureSKTexture?的类型,所以您不能将其与字符串进行比较,而应该与实际的SKTexture对象进行比较。尽管如此,您应该尝试重新设计您的代码,正如其他人在您的问题的评论中所建议的那样。检查纹理本身并不是很好的设计。首先,如果你决定在2个月内为你的精灵使用不同的纹理,那么你需要记住重新访问这些代码。

我会建议从SKSpriteNode继承并检查一个精灵的类型是否与你的子类相同。其他替代品是比较sprite.name或精灵的userData