問題タブ [zposition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
enums - spriteKit の enum と zPosition の問題
スプライト キットで zPositiion を確立するために使用される enum に問題があります。列挙型は次のとおりです。
そして、追加の効果を含めるために、シーンをさまざまなレイヤーに分割しています。spriteKit ベース ノードとして worldNode を追加すると、その子は次のようになります。
ご覧のとおり、greenCircle は backGroundMountainOver の子であり、foreGroundMountainRight は worldNode の子です。前に述べた効果にはこれが必要です。
問題は、foreGroundMountainRight の zPosition が greenCircle の zPosition よりも大きいにもかかわらず、最後のものが最初のものの上に表示されることです。この問題を解決する唯一の方法は、次のように変更することです。
何が起こっているのか理解できません。
sprite-kit - 間違った zPosition の SKSpriteNodeChild
2 つの SKSpriteNode を子として別の SKSpriteNode に追加しています。コードは次のようになります。
シーンに parentNode を追加すると、z 平面内のスプライトの順序は後ろから前になります。
- 親ノード
- 子1
- 子2
そして時々、期待される
- 子1
- 親ノード
- 子2
子がparentNodeの下にある場合、zPositionプロパティは上書きされますか? 誰かがこのようなバグに遭遇したか、修正を知っていますか?
GameViewController で、skView.ignoresSiblingOrder = true
に設定するとfalse
、毎回最初の動作 (parentNode、child1、child2) が取得されます。
ios - エミッタノードを前面に移動するには?
バックグラウンドzPosition
は 1 で、エミッタ ノードは 2 です。まだバックグラウンドは前面にあります。より高い数値も試しましたが、役に立ちません。
コード
ios - iOS で zPositions を視覚化する方法
私のチームと私は、中程度の複雑さの SpriteKit ベースの iOS ゲームに取り組んでいます。ゲームの設計には多くのレイヤーとノードがあり、ノードの zPositioning がずさんになっています。私が引き受けることに同意したタスクの 1 つは、zPosition 戦略の刷新です。マジック ナンバーの代わりに定数に移行すること、アプリに全体的な zPosition スキームを用意することなどです。しかし、まず現在の状況を分析したいと思います。だからここに私の質問があります:
zPosition に基づいて、同形の角度から見たアプリの 3D レンダリングを表示するために、Instruments (またはその他のツール) のいくつかの側面を使用して人を示した WWDC ビデオ (またはおそらく他のチュートリアル) を見たのを漠然と思い出します。アプリ内の SKNodes (または UIKit 要素?) の
ここにいる誰かがこれが何のツールか知っていますか? そうでない場合、SpriteKit ベースのアプリで zPositions の現在の状態を視覚化する最良の方法は何ですか? ありがとう!
swift - SpriteKit - SKNode がタッチ検出されない理由
シーンが期待どおりに動作しない理由を理解するために、数え切れないほどの参照を確認しました。
これが私の非常に単純な SKScene (2 つの子ノード) です。
- シーンには SpriteNode (シーン全体を背景イメージとしてカバー) があります。これは zPosition = 0 です。
- シーンには、別の子 (最大 2 レベル) を持つ 2 番目のノード (SKNode) があります。これには zPosiiton - 2 があります。
- すべてのノードには .userInteractionEnabled = false があります
問題:
どこかをクリックすると、最初の子 (SpriteNode) がタッチされていることがわかります。2 番目の子 (SKNode) はタッチ検出されません。
ノードの z オーダーが期待どおりにレンダリングされていることに注意してください。機能していないように見えるのはタッチ検出です。
私の touchesBegan メソッドのスニペット: