2017-03-14 15 views
0

画面のほとんどを塗りつぶす「モーダル」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を呼び出すので、それが使用していたものであればスクリーンよりもはるかに小さいはずですが、それはそうではありません。私のゲームはランドスケープモードで、上記の幅と高さの切り替えを試みましたが、画面全体を塗りつぶしました(左と右のどちらにもボーダーがありません)。私は上記のコードで位置を設定していないことを知っているが、それでも均一でない場合は、どこかの夕方に「境界」を見ることが予想されます。

これはすべて私のメインシーンファイルで行われるので、ここのフレームはメインゲームシーンのフレームに関連しています。

アイデア?

+0

すべての値を印刷するだけで何が間違っているかがわかります。例えば。ビューのサイズ、モーダルのサイズなどを印刷するか、問題を再現できるコードを追加してください。 – Whirlwind

+0

問題を再現するコードを提供しました。私はシーンのサイズに触れていません。これはSKSceneファイルなので、このインスタンスのビューです。しかし、それは問題が私のsksファイルで行うことになった。これはもともとフリーフォームに設定されていました。これを横向きの特定のデバイスにアップデートすることで問題が解決されました – TommyBs

答えて

0

他の人にとっては、私のシーンがSKSファイルから読み込まれるという問題がありました。

問題のSKSファイルのサイズが自由に設定されていました。これをiPhone 6などの特定のデバイスに変更し、向きが横向きに設定されていることを確認してサイズ変更に関する問題を修正しました。

関連する問題