一尘不染

Xcode 6 / SpriteKit / Swift中的场景大小

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)

它什么都没显示,所以我看了看场景尺寸是什么,self.frame.size.width和self.frame.size.height返回的宽度为1024,高度为768,与方向无关。

我希望以横向模式解决此问题,如果这对答案有什么影响?

显然,我缺少一个与场景设置有关的非常基本的想法,如果有人可以提供任何帮助,将不胜感激。

谢谢。


阅读 215

收藏
2020-07-07

共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章)

2020-07-07