Размер сцены в Xcode 6 / SpriteKit / Swift

Я застрял, делая то, что должно быть очень простым в Xcode, я пытаюсь добавить спрайт к сцене и для него сидеть в левом нижнем углу:

var groundTexture : SKTexture = SKTexture(imageNamed: "dirt-block")    
var ground : SKSpriteNode = SKSpriteNode(texture: groundTexture)
ground.position = CGPointMake(ground.size.width/2, ground.size.height/2)
self.addChild(ground)

Это ничего не показывает, поэтому я взглянул на то, каковы размеры сцены и себя.рамка.размер.ширина и собственная личность.рамка.размер.высота возвращает ширину 1024 и высоту 768, независимо от ориентации.

Я хочу, чтобы это исправлено в ландшафтном режиме, если это делает никакой разницы в ответ?

мне, очевидно, не хватает очень фундаментальной идеи, связанной с настройкой сцены, если бы кто-нибудь мог пролить свет, это было бы очень оценено.

спасибо.

1 ответов


вы должны отредактировать GameViewController:

вырезать все от viewDidLoad() за исключением super.viewDidLoad()

перезаписать viewWillLayoutSubviews

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
        // Configure the view.
        var skView = self.view as SKView
        skView.showsFPS = true
        skView.showsNodeCount = true

        /* Sprite Kit applies additional optimizations to improve rendering performance */
        skView.ignoresSiblingOrder = true

        /* Set the scale mode to scale to fit the window */
        scene.size = skView.bounds.size
        scene.scaleMode = .AspectFill

        skView.presentScene(scene)
    }
}

также вы должны установить размер сцены, как вы можете видеть

scene.size = skView.bounds.size

надеюсь, что это помогает

существует также отличный учебник, где это объясняется лучше: http://www.raywenderlich.com/49721/how-to-create-a-breakout-game-using-spritekit (Глава 1 или 2)