Подтвердить что ты не робот

Как перенести SKSpriteNode на передний план?

Как я могу привести SKSpriteNode в начало всех остальных node?

С UIView я могу использовать метод bringSubviewToFront для вывода uiview перед другими представлениями.

4b9b3361

Ответ 1

Вы не можете "вывести его на передний план", но вы можете изменить его zPosition.

Чем выше zPosition node, тем позже он будет отображаться.

Итак, если у вас есть три узла с zPositions от -1, 0 и 1, то -1 появится на обратной стороне. Тогда 0. Тогда 1 появится спереди.

Если все используют значение по умолчанию zPosition 0.0, то они отображаются в порядке, указанном в массиве children родительского node.

Вы можете прочитать все это в документах.

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

Ответ 2

Это расширение добавляет метод bringToFront к SKNode. Это замечательно для времен, когда zPosition является неуместным, и вы хотите полагаться на порядок братьев и сестер.

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

`

Ответ 3

Если вы хотите перенести node на передний план, используйте это:

yourNode.zPosition = 1

или к самой задней части:

yourNode.zPosition = -1

или на том же уровне, что и другие узлы (по умолчанию это значение установлено):

yourNode.zPosition = 0