2015-02-09 28 views
1

我在SpriteKit做一個遊戲,我不知道如何鏈接一個新的屬性(讓我們稱之爲「值」)到每個SKSpriteNode。我試了幾件事情:試圖使用每個SKSpriteNode與一個新的屬性

- >使用結構是這樣的:

struct mySprite { 
    var sprite: SKSpriteNode 
    var value: CGFloat 
} 

但我不能指定例如sprite1.sprite = SKSpriteNode(imageNamed: "picture")

- >試圖延長SKSpriteNode,它的XCode不會讓我添加一個新的屬性。

- >建立從SKSpriteNode繼承加入了一個名爲值這樣的新屬性的新類:

class mySprite : SKSpriteNode { 
    var value: CGFloat = 0 
} 

但後來,我不能像執行的代碼行:

let sprite : mySprite = SKSpriteNode(imageNamed: "picture") 

我想我正在以錯誤的方式建立這個班。

有什麼想法嗎?還算我在iOS編程中是一個小新手,所以任何幫助將不勝感激。謝謝:)

回答

3

您可以創建這樣

class CustomSpriteNode : SKSpriteNode { 
    var value: CGFloat = 0 
} 

自定義類創建自定義類

let spriteNode : CustomSpriteNode = CustomSpriteNode(imageNamed: "picture.png")  
spriteNode.value = 10 
+0

它工作:)謝謝你的回答! – Adri 2015-02-09 18:46:25

+0

你可以通過忽略spriteNode的類型和編碼來稍微簡化它:let spriteNode = CustomSpriteNode(imageNamed:... – 2016-04-11 18:51:52

0

的實例有時,最簡單的選擇是直接在用戶數據屬性存儲數據的SKNode。

mySprite.userdata = ["myValue" :"asdf" ] 

更多的例子在這裏:Swift spritekit set userdata

或者,正如其他人所說,你可以繼承的節點,然後添加自己的屬性。