2017-07-31 51 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