2014-12-03 97 views
1

我正在構建一個遊戲,其中角色有健康狀況欄。我做了一些快速的研究,發現分類SKNode並分別爲角色和健康欄添加SKSpriteNode成員是一個好方法。所以目前我有這個:使用多個SKSpriteNodes初始化SKNode

class GameCharacter: SKNode { 

let characterBody = SKSpriteNode() 
let characterHealthBar = SKSpriteNode() 

} 

但是我不知道如何初始化,以便兩個精靈節點出現。有效地,我想要的是頂部的角色身體以及底部的健康欄。

我知道這是在init方法SKSpriteNode給大小和質地初始化:

override init() { 
let texture = SKTexture(imageNamed: "CharacterStanding.png") 
super.init(texture: texture, color: UIColor.clearColor(), size: texture.size()) 
} 

不SKNode有類似的init方法?或者是否足以啓動SKNode中的兩個SKSpriteNode,然後在遊戲場景中創建一個新的GameCharacter對象?

或者我想我想問的是什麼;我該如何初始化這個GameCharacter(SKNode)對象,並出現字符和健康狀態欄?

回答

1

繼承人的解決方案,我發現迄今:

在init方法只是做到以下幾點:

override init() { 
super.init() 
self.addChild(characterBody) 
characterHealthBar.position = 
    CGPoint(x: characterBody.position.x, y: characterBody.position.y - 45) 
self.addChild(characterHealthBar) 
} 

,這將初始化與人物的節點和低於他/她

健康酒吧
1

如果您在精靈套件中遇到z-index問題,它通常是由系統使用ignoresSiblingOrder = true進行優化造成的,您可以在每個節點中手動處理此定義的zPosition。

有關Drawing Order for a Node Tree的更多信息