Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Gamescene.sks和Gamescene.swift don';我的项目中似乎没有任何关联_Ios_Swift_Sprite Kit_Swift3 - Fatal编程技术网

Ios Gamescene.sks和Gamescene.swift don';我的项目中似乎没有任何关联

Ios Gamescene.sks和Gamescene.swift don';我的项目中似乎没有任何关联,ios,swift,sprite-kit,swift3,Ios,Swift,Sprite Kit,Swift3,我正在学习SpriteKit,并使用level editor启动了一个小项目 但是,由于某些原因,GameSecene.swift和GameSecene.sks似乎没有链接。下面是.sks文件设置的屏幕截图和.swift文件的viewDidLoad中的一个小打印语句。请让我知道我做错了什么。或者如果我错过了什么 spritekit.sks文件 我的视图控制器的viewDidLoad函数 class GameViewController: UIViewController {

我正在学习SpriteKit,并使用level editor启动了一个小项目

但是,由于某些原因,GameSecene.swift和GameSecene.sks似乎没有链接。下面是.sks文件设置的屏幕截图和.swift文件的viewDidLoad中的一个小打印语句。请让我知道我做错了什么。或者如果我错过了什么

spritekit.sks文件

我的视图控制器的viewDidLoad函数

    class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let screenSize = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
        GameController.gameController.setGameManager(gameViewManager: self);

        if let view = self.view as! SKView? {
            // Load the SKScene from 'GameScene.sks'
            if let scene = SKScene(fileNamed: "GameScene") {

                // Set the scale mode to scale to fit the window
                scene.scaleMode = .aspectFill

                // Present the scene
                view.presentScene(scene)

            }
        }
    }

我们有一个正常的
游戏场景.swift
应该用
游戏场景.sks打印“hello”,由
游戏视图控制器调用。您没有指定什么是
GameController
,但这不是问题,因为我认为您可能会失去游戏的流畅性,所以我会尽力帮助您(别担心, 当你长时间专注于游戏的其他部分而记不起开始流程时,就会发生这种情况)

Main.storyboard
中,您可能不会遇到这样的情况:

其中,
GameViewController
是初始视图控制器。 我的意思是,你应该检查谁在你的故事板上调用了
GameViewController
,或者你的
AppDelegate.swift
(在
DiFinishLaunchingWithOptions
)在调用
GameViewController
之前停止流或调用其他视图

因此,请检查谁是IVC(初始视图控制器),并确保从开始调用您的
GameViewController
,或由其他使用断点的ViewController调用,或者只需在
viewDidLoad
中启动此打印:

print("∙ \(type(of: self))")

在库中添加或删除同名文件时,可能会出现另一种情况。在这种情况下,请尝试删除
GameSecene.swift
GameSecene.sks
,清理并构建项目并重新添加这些文件(确保屏幕GameSecene.sks具有正确的自定义类..) 检查编译源代码列表以控制
游戏场景。swift


希望有帮助。

这将有助于显示您在游戏场景中的初始位置。通常在视图控制器中,当您实际运行应用程序时会显示什么?@SkylerLauren,完成。当我运行应用程序时,sks文件中的游戏场景会运行。但是,.swift文件中的脚本没有运行。看起来一切都是正确的。我会查看GameScene.swift文件。可能是游戏场景输入错误之类的傻事。当你在SKS中输入游戏场景时,自动完成是否也给你提供了一个选项?@allessandro我检查了你所说的。我在GameViewController的didMove to View函数中打印了一条语句。它运行良好,并将该声明打印到控制台。我尝试删除引用并再次添加它。我检查了编译源代码和自定义类。自定义类对于将swift链接到sks很重要:有时它不起作用,因为它看不到正确的swift模块(旧的或缓存的错误版本…)。检查并纠正它,直到它看到模块。谢谢!我不得不再次检查所有的东西以确定。出于某种原因,它会将模块名称中的连字符转换为下划线。好极了,好消息。有时候会发生这种情况,很高兴知道问题解决了。祝你的项目好运。