如何将 SKSpriteNode 置于所有其他节点之前?
在 UIView 中,可以使用 bringSubviewToFront 将一个 UIView 置于其他视图前面。
如何将 SKSpriteNode 置于所有其他节点之前?
在 UIView 中,可以使用 bringSubviewToFront 将一个 UIView 置于其他视图前面。
zPosition
。zPosition
越高,它就越晚被渲染。zPositions
分别为-1、0和1,那么-1将出现在后面。然后是0。然后1将出现在前面。zPosition
0.0,则按它们出现在父节点的子数组中的顺序呈现它们。SWIFT 4
我通常创建枚举来确定zPositions,这样我就可以简单地管理不同的图层:
enum ZPositions: Int {
case background
case foreground
case player
case otherNodes
}
因此,当您设置一个新项目时,可以通过以下方式简单地给它赋予zPosition:
button.zPosition = CGFloat(ZPosition.otherNodes.rawValue)
extension SKNode {
func bringToFront() {
guard let parent = parent else { return }
removeFromParent()
parent.addChild(self)
}
}
`
yourNode.zPosition = 1
如果您想将节点置于最后面,请使用以下代码:
yourNode.zPosition = -1
如果您想将节点置于与其他节点相同的级别(因为默认情况下它被设置为此值),请使用以下代码:
yourNode.zPosition = 0