画面に表示されているどの部分がどのように見切れてしまうのか、具体的な状況の説明がほとんどないので、この質問を読んだだけでは何のことを言っているのかさっぱりわかりませんでしたが、Xcodeでプロジェクトを新規作成する際に「Game」を選択して作成したものをそのまま実行するだけで発生するということなので、とりあえずプロジェクトを作成して実行してみて、何のことを言っているのかやっとわかりました。
画面中央に表示される「Hello, World!」の文字がiPhone8だと画面幅ぎりぎりいっぱいに表示されるのに、iPhone11だと左右少しはみ出る大きさで表示されているのを問題としているのですね。これは、単なるサンプルアプリで、簡単な処理しかしていませんので、そのように表示されるようになっているということです。
このサンプルアプリのGameScene.sksのサイズは750x1334で作られており、これはiPhone8の画面の画面サイズ(750x1334)に合わせたサイズで作られています。そのため、iPhone8で実行すると、HelloWordの文字がきちんと表示されます。このiPhone8の画面サイズの縦横比は、750:1134 = 1:1.78です。
一方、iPhone11の画面サイズは828x1792で、iPhone8より少し大きいサイズになりますが、画面の縦横比は828:1792 = 1:2.16と、iPhone8に比べて少し縦長の縦横比になります。
このサンプルアプリは、GameViewController.swiftの21行目で
swift
1// Set the scale mode to scale to fit the window
2scene.scaleMode = .aspectFill
という設定がされており、SKSceneのサイズが画面サイズと合わない時は、SKSceneの縦横比を変えないまま、画面いっぱいに拡大表示するように設定されています。そのため、縦方向ギリギリいっぱいに拡大すると、それに合わせた比率で横方向も拡大され、画面幅よりも大きな幅にSKSceneが拡大されてしまい、その中の文字も画面を少しはみ出るように拡大されてしまうということです。
上記の設定を .aspectFill
ではなくて、 .aspectFit
にすれば、画面をはみ出ない範囲でギリギリいっぱいに拡大されるので、HelloWorldの文字ははみ出なくなります。ただし、今度は画面の上下に余白ができます。
上記の設定を .aspectFill
ではなくて、 .fill
にすれば、縦横比を変更して画面ぎりぎりいっぱいになるように拡大されるので、左右がはみでたり、上下の余白ができたりすることはなくなりますが、今度はHelloWorldの文字が縦長に細くなります。
SKScene.sksのサイズを828x1792にして、HelloWorldの文字をSKSceneの左右ぎりぎりに表示される文字サイズにし、上記の設定を .aspectFill
にすれば、どの画面サイズでもHelloWorldの文字が画面幅いっぱいに表示されるようになると思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。