2013-10-03 36 views

回答

45

你不能「把它帶到前面」,但你可以改變它的zPosition

節點的zPosition越高,它越晚渲染。

因此,如果您有三個節點,zPositions爲-1,0和1,則-1會出現在後面。然後0.然後1將出現在前面。

如果它們全都使用0.0的默認zPosition,那麼它們按它們出現在父節點的children數組中的順序呈現。

您可以在文檔中閱讀全部內容。

https://developer.apple.com/documentation/spritekit/sknode

+1

感謝您的幫助。這是我需要的。現在我可以將SKSpriteNode帶到背景的前面。 –

+2

你也可以創建2層(或更多)。有一個用於背景,另一個用於播放器等。您添加這些的順序會影響分層,所以首先添加背景層。 – DogCoffee

0

此擴展增加了一個bringToFront方法SKNode。這很適合zPosition不合適的時候,並且您想要依靠兄弟姐妹排序。

extension SKNode { 
    func bringToFront() { 
     guard let parent = parent else { return } 
     removeFromParent() 
     parent.addChild(self) 
    } 
} 

`

0

如果你想帶一個節點到非常正面使用:

yourNode.zPosition = 1

還是很後面:

yourNode.zPosition = -1

或與其他節點相同的級別(因爲它默認設置爲此值):

yourNode.zPosition = 0