画面のほとんどを塗りつぶす「モーダル」SKSpriteNodeを作成して、各面の境界線を差し引いてみようとしています。私は表示目的のためにいくつかの他の情報を渡す必要があるので、私はカスタムのinitメソッドを持っているSKSpriteNodeのサブクラスを持っています。画面に相対的なサイズのSKSpriteNode
は私はその後、以下のようにサイズを設定しています私のモーダルを初期化した後:
let modal = Modal(items: [Item])
let newSize = CGSize(width: (frame.width) - 40, height: (frame.height) - 40)
modal.size = newSize
modal.zPosition = 999
addChild(modal)
トラブルは、私のモーダルの上部または下部に何の境界線はありません、それは垂直方向に画面全体を埋めます。モーダルの私のカスタム 'init'メソッドは、50,50のサイズで渡されるsuper.initを呼び出すので、それが使用していたものであればスクリーンよりもはるかに小さいはずですが、それはそうではありません。私のゲームはランドスケープモードで、上記の幅と高さの切り替えを試みましたが、画面全体を塗りつぶしました(左と右のどちらにもボーダーがありません)。私は上記のコードで位置を設定していないことを知っているが、それでも均一でない場合は、どこかの夕方に「境界」を見ることが予想されます。
これはすべて私のメインシーンファイルで行われるので、ここのフレームはメインゲームシーンのフレームに関連しています。
アイデア?
すべての値を印刷するだけで何が間違っているかがわかります。例えば。ビューのサイズ、モーダルのサイズなどを印刷するか、問題を再現できるコードを追加してください。 – Whirlwind
問題を再現するコードを提供しました。私はシーンのサイズに触れていません。これはSKSceneファイルなので、このインスタンスのビューです。しかし、それは問題が私のsksファイルで行うことになった。これはもともとフリーフォームに設定されていました。これを横向きの特定のデバイスにアップデートすることで問題が解決されました – TommyBs