2017年8月28日月曜日

SpriteKit で iPad の画面表示に対応する方法

概要

タイトルの通りです
.aspeftFill を使っていたのですが、それで iPad で表示すると上下に黒の帯が表示されてしまいました
どうやらこの状態で審査に出すとリジェクトされるらしいので iPad で黒帯が表示されないように対応してみました

環境

  • macOS X 10.12.6
  • Xcode 8.3.3 (8E3004b)

対応コード

シーンに遷移する箇所を以下のように修正しました

if let view = self.view as! SKView? {
    if let scene = TitleScene(fileNamed: "TitleScene") {
        if (UIDevice.current.model.range(of: "iPad") != nil) {
            scene.scaleMode = .fill
        } else {
            scene.scaleMode = .aspectFill
        }
        view.presentScene(scene)
    }
    view.ignoresSiblingOrder = true
    view.showsFPS = true
    view.showsNodeCount = true
}

ポイントは iPad だったときに scaleMode を .fill にするところです
それ以外はこれまで通り .aspectFill を使います

こうすることで iPad 時にも画面いっぱいに SKScene を表示することができます

最後に

iPad 時に画面に黒帯が表示されてしまう状況に対応してみました
まだ審査に出してはいないのですが、おそらくこれで iPad 対応として審査が通ると思います

0 件のコメント:

コメントを投稿