読者です 読者をやめる 読者になる 読者になる

Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 885 - GameScene.sksを回避

GameScene.sksを使うと、グリッドの配置がおかしくなります。これを自分で修正することができないので、コードでGameSceneクラスを初期化してレイアウトのズレを回避します。

GameViewControllerにコードされているviewDidLoard()メソッドは次のようになっています。

override func viewDidLoad() {
    super.viewDidLoad()
        
    if let view = self.view as! SKView? {
        // Load the SKScene from 'GameScene.sks'
        if let scene = SKScene(fileNamed: "GameScene") {
            // Set the scale mode to scale to fit the window
            scene.scaleMode = .resizeFill
                
            // Present the scene
            view.presentScene(scene)
        }
            
        view.ignoresSiblingOrder = true
            
        view.showsFPS = true
        view.showsNodeCount = true
    }
}

このコードはGameScene.sksを使ってGameSceneクラスの初期化をするんですが、これでうまくレイアウトの調整ができないので、次のようにします。

override func viewDidLoad() {
    super.viewDidLoad()
        
    if let view = self.view as! SKView? {
            
        let scene = GameScene()
            
        scene.scaleMode = .resizeFill
        scene.backgroundColor = UIColor.lightGray
            
        // Present the scene
        view.presentScene(scene)
            
        view.ignoresSiblingOrder = true
            
        view.showsFPS = true
        view.showsNodeCount = true
    }
}

あまり説明の要らないコードですね。これでランするとちゃんとグリッドが整列します。

f:id:yataiblue:20161219203034j:plain

ちょっとよく理解できてないけど次に進みます。