如何为我的新.sks文件创建.swift文件?

时间:2016-05-23 14:51:15

标签: swift sprite-kit swift2

使用Xcode时,我遇到了烦人的问题,当我点击.SKS文件时Xcode总是崩溃。我在这里提出了问题,甚至在Apple开发者论坛上,以及在互联网上搜索解决方案......但它没有希望。

因为我正在制作一个包含许多场景的游戏,所以如果我不能使用SpriteKit编辑器以简单的方式与场景交互,我想知道如何通过编码他们的.swift文件来与我的场景进行交互。

所以问题是,例如,当我创建一个文件“EndScene.sks”时,如何创建一个“EndScene.swift”,它与我的.sks文件链接?

非常感谢!

2 个答案:

答案 0 :(得分:5)

创建一个新的swift文件,并将其命名为.sks文件。假设您有一个名为MainMenu.sks的.sks文件。您将创建一个名为MainMenu.swift的快速文件。在该文件中,您需要创建一个继承自SKScene的Main Menu类。

import SpriteKit

class MainMenu: SKScene {

}

在里面你可以放置所有代码。正如你所说,关键是将其链接到.sks文件。

当您去展示场景时,您将实例化该类并将其与.sks文件关联。

import UIKit
import SpriteKit

class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        if let scene = MainMenu(fileNamed:"MainMenu") {
            let skView = self.view as! SKView
            // Some settings applied to the scene and view
            // ... code ...

            skView.presentScene(scene)
        }
    }
//... other code
}

注意第let scene = MainMenu(fileNamed:"MainMenu")行。这就是您在MainMenu.swift.中实例化您创建的类的地方所以,从技术上讲,MainMenu().swift文件,fileNamed: "MainMenu".sks文件。您可以在技术上将任何.sks文件放入init调用中,它将呈现该场景。

想象一下,拥有迷宫跑者所有逻辑的游戏。您可以在名为MazeScene的类中构建所有游戏逻辑,只需制作一堆.sks个文件,每个文件都有不同的迷宫。那么您可以这样,MazeScene(fileNamed: "MazeOne")MazeScene(fileNamed: "MazeThree")

有关此文档的文档,SKScene继承自SKNode,因此您可以找到init(fileNamed:) here的文档

这应该让你去。

答案 1 :(得分:1)

所以不是评论我不得不徘徊,因为StackOverflow不让我发表评论,在swift 3中有多少相同?当你在UIViewController中这样做时,你说

if let scene = MainMenu(fileNamed:"MainMenu") {
        let skView = self.view as! SKView
        // Some settings applied to the scene and view
        // ... code ...

        skView.presentScene(scene)
    }

你是什么意思

// ... code ...

我们是否将我们放在SKScene类中的所有代码放在那里?我认为重点是要有一个单独的SKScene课程。当我尝试这样的SKScene课程时,我没有加载。感谢您的任何澄清和抱歉,我必须回答而不是评论。你需要50点声望才能发表评论我觉得很愚蠢。我没有看到任何一点。无论如何,谢谢!