【问题标题】:Scene size in Xcode 6 / SpriteKit / SwiftXcode 6 / SpriteKit / Swift 中的场景大小
【发布时间】:2014-10-08 20:07:34
【问题描述】:

我一直被困在 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)

这没有显示任何东西,所以我看了一下场景尺寸,self.frame.size.width 和 self.frame.size.height 返回的宽度为 1024,高度为 768,不管怎样方向。

如果这对答案有任何影响,我希望在横向模式下修复此问题?

我显然错过了与设置场景有关的一个非常基本的想法,如果有人能提供任何启发,将不胜感激。

谢谢。

【问题讨论】:

  • 场景大小由 GameScene.sks 决定。如果单击该文件,您会看到场景的 size 属性设置为 1024 x 768。

标签: swift sprite-kit xcode6 scene


【解决方案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 章)

【讨论】:

猜你喜欢
  • 2015-01-12
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多