Как разместить сцену SKTilemap по центру экрана в Swift - PullRequest
0 голосов
/ 21 июня 2020

Я создал TilemapScene (CKTilemapScene.sks) в Swift 5. Это в основном предназначено для размещения фона мозаичной карты моего игрового проекта. См. Второй снимок экрана ниже.

Затем в моем основном быстром коде я загружаю весь фон стандартными кодами. Но почему-то тайловая карта не центрирована. См. Первый снимок экрана ниже. Но в нижнем левом углу экрана. Пробовал поиграть с точкой привязки. Это не помогает. Я установил что-нибудь не так?

импорт UIKit импорт SpriteKit импорт GameplayKit

класс GameViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    
    if let view = self.view as! SKView? {

        if let scene = SKScene(fileNamed: "CKTilemapScene") {
            
            // Present the scene
            view.presentScene(scene)
        }
        
        view.ignoresSiblingOrder = true
        
        view.showsFPS = true
        view.showsNodeCount = true
        view.showsPhysics = true
    }
}

override var shouldAutorotate: Bool {
    return true
}

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    if UIDevice.current.userInterfaceIdiom == .phone {
        return .landscape
        //.allButUpsideDown
    } else {
        return .all
    }
}

This is the outcome, tile map not centralised

Это снимок экрана из инспектора атрибутов.

1 Ответ

0 голосов
/ 21 июня 2020

Установите положение SKScene по центру SKView.

override func viewDidLoad() {
    super.viewDidLoad()

    if let view = view as? SKView {
        if let scene = SKScene(fileNamed: "CKTilemapScene") {
            scene.position = view.center
            view.presentScene(scene)
        }
    }
    //...
}
...