使用Swift使SKScene填满整个屏幕

时间:2014-09-19 11:55:06

标签: ios swift sprite-kit skscene

我在GameViewController.swift

中有以下内容
class GameViewController: UIViewController {

    override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()
        println(self.view.frame.size)
        var skView:SKView = self.view as SKView
        if skView.scene == nil {
            skView.showsFPS = false
            skView.showsNodeCount = false

            // Create and configure the scene.
            var scene : SKScene = GameScene(size: skView.bounds.size)
            scene.scaleMode = SKSceneScaleMode.AspectFill

            // Present the scene.
            skView.presentScene(scene)
        }
    }

    override func prefersStatusBarHidden() -> Bool {
        return true
    }
}

打印:

(320.0,480.0)

如何让GameScene填满整个屏幕而不是在屏幕的顶部和底部留下黑带?

GameScene.swift

中的代码
class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        var background : SKSpriteNode = SKSpriteNode (imageNamed: "background.png")
        background.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2)
        self.addChild(background)
    }
}

background.png是尺寸为640x1138

的图片

部署目标是iOS 7.1

我正在使用Xcode 6.0.1(Beta)

4 个答案:

答案 0 :(得分:1)

您需要调整背景节点的大小以匹配场景。

background.size = self.frame.size

答案 1 :(得分:1)

我必须在LauchImage

中手动添加名为Images.xcassets的图像集

答案 2 :(得分:0)

  1. 添加启动屏幕:

新文件-iOS-用户界面-启动屏幕

  1. 在以下位置设置新启动屏幕的名称:

项目-常规-启动屏幕文件

  1. 在GameViewController中设置

sceneNode.scaleMode = .resizeFill

答案 3 :(得分:0)

首先进入你的 Xcode 项目

点击 .xcodeproj 文件

然后在部署信息下应该有一个复选框说需要全屏检查这个然后应该使用整个屏幕!

编辑

您还必须指定一个启动屏幕,因为它对我来说暂时是全屏的,但是一旦我删除了启动屏幕就停止了,您可以在它所在的部署信息下指定它

应用图标和启动图像

即使你还没有创建一个 Xcode 通常会在你第一次创建项目时为你创建一个它应该在名称“main”下