【问题标题】:How do I set the initial scene in a sprite kit project?如何在 sprite kit 项目中设置初始场景?
【发布时间】:2015-07-22 16:58:31
【问题描述】:

我有两个 SKScenes GameSceneMenuScene,当我打开应用程序时出现的默认场景是 GameScene 但我希望 MenuScene 首先出现

我尝试更改 GameViewController 中的代码:

import UIKit
import SpriteKit

extension SKNode {
    class func unarchiveFromFile(file : String) -> SKNode? {
        if let path = NSBundle.mainBundle().pathForResource(file, ofType: "sks") {
            var sceneData = NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe, error: nil)!
            var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)

            archiver.setClass(self.classForKeyedUnarchiver(), forClassName: "SKScene")
            let scene = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as! MenuScene
            archiver.finishDecoding()
            return scene
        } else {
            return nil
        }
    }
}

class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        if let scene = MenuScene.unarchiveFromFile("MenuScene") as? MenuScene {
            // Configure the view.
            let 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.scaleMode = .AspectFill

            skView.presentScene(scene)
        }
    }

但它只显示灰屏而不是场景,我需要做些什么吗?

【问题讨论】:

    标签: ios swift sprite-kit skscene


    【解决方案1】:

    您的MenuScenesks 文件吗?可能不是,您只需将swift 文件作为场景。

    如果我理解正确,unarchiver 会获取一个sks 文件并将其解压缩,查看“unarchiveFromFile”方法,查看 if 语句,else 返回 nil。

    你可以这样做:

    if let scene = new MenuScene() {
    

    而不是取消归档。否则,制作MenuScene 文件的sks 版本。

    【讨论】:

    • 我如何创建一个 sks 版本?
    • @Zablah,我的朋友,需要一些谷歌搜索。购买可以从 Xcode 创建一个 sks 文件进入顶部菜单,新建文件,然后选择 sks 文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多