35

SKSpriteNode を他のすべてのノードの前面に移動するにはどうすればよいですか?

UIView では、bringSubviewToFront を使用して uiview を他のビューの前面に表示できます。

4

4 に答える 4

58

「前面に出す」ことはできませんが、変更することはできますzPosition

ノードが高いほどzPosition、後でレンダリングされます。

したがってzPositions、-1、0、1 の 3 つのノードがある場合、-1 が後ろに表示されます。次に 0 です。次に 1 が先頭に表示されます。

それらがすべてデフォルトzPositionの 0.0 を使用する場合、それらは親ノードの子配列に表示される順序でレンダリングされます。

ドキュメントですべてを読むことができます。

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

于 2013-10-03T09:14:59.153 に答える
4

SWIFT 4
通常、さまざまなレイヤーを簡単に管理できるように、zPositions を確立する列挙型を作成します。

enum ZPositions: Int {
    case background
    case foreground
    case player
    case otherNodes
}
  • 「ケースの背景」は下の位置で、デフォルトの位置 0 と同じです。
  • 「ケースフォアグラウンド」= 1
  • 「ケースプレーヤー」= 2
  • 「他のノードの場合」= 3

したがって、新しいアイテムをセットアップするときは、次の方法で簡単に zPosition を指定できます。

button.zPosition = CGFloat(ZPosition.otherNodes.rawValue)

(ボタンの zPosition が最大になりました)

于 2019-02-20T19:01:01.853 に答える