###前提・実現したいこと
SpriteKitについての質問です。GameSceneクラスで画面ぴったりの背景画像を表示させたいのですが、iPhoneの機種が違うと余白ができます。
機種が違っても画面ぴったりに背景画像を表示したいです。
背景画像のサイズは
@1x 320ピクセル * 568ピクセル
@2x 640ピクセル * 1136ピクセル
@3x 960ピクセル * 1704ピクセル
です。縦横比を固定しながら2倍3倍しました。
シミュレーターでビルドしたところ、iPhone5だと@2xの背景画像がぴったり表示されます。しかし、iPhone7だと同じ@2xでも余白ができます。
@1x,@2x,@3xの画像3枚を用意すれば勝手にサイズを調整してくれると思っていたのですが違うのでしょうか。
###ソースコード
swift
1import UIKit 2import SpriteKit 3import GameplayKit 4 5class GameViewController: UIViewController { 6 7 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 let view = self.view as! SKView 13 let scene = GameScene() 14 15 scene.scaleMode = .aspectFill 16 scene.size = view.frame.size 17 18 view.presentScene(scene) 19 20 21 view.ignoresSiblingOrder = true 22 23 view.showsFPS = true 24 view.showsNodeCount = true 25 26 } 27 28 override var shouldAutorotate: Bool { 29 return true 30 } 31 32 override var supportedInterfaceOrientations: UIInterfaceOrientationMask { 33 if UIDevice.current.userInterfaceIdiom == .phone { 34 return .allButUpsideDown 35 } else { 36 return .all 37 } 38 } 39 40 override func didReceiveMemoryWarning() { 41 super.didReceiveMemoryWarning() 42 // Release any cached data, images, etc that aren't in use. 43 } 44 45 override var prefersStatusBarHidden: Bool { 46 return true 47 } 48} 49 50import SpriteKit 51import GameplayKit 52 53class GameScene: SKScene { 54 55 var back = SKSpriteNode(imageNamed: "back")//背景画像 56 57 override func didMove(to view: SKView) { 58 back.position = CGPoint(x: 0, y: 0) 59 back.anchorPoint = CGPoint(x: 0, y: 0) 60 61 self.addChild(back) 62 } 63 64 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。