Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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 如何在游戏场景之外创建更多场景_Ios_Swift_Sprite Kit_Skscene - Fatal编程技术网

Ios 如何在游戏场景之外创建更多场景

Ios 如何在游戏场景之外创建更多场景,ios,swift,sprite-kit,skscene,Ios,Swift,Sprite Kit,Skscene,我试图创建一个新的SKScene“mainsecene”子类,就像苹果创建的GameSecene一样 我想在我的“游戏场景”之外创建更多的场景,但它不起作用 下面是我的子类代码 主场景: import SpriteKit #if !os(iOS) import AppKit #endif class MainScene : SKScene { override func didMoveToView(view: SKView) { backgroundColor =

我试图创建一个新的SKScene“mainsecene”子类,就像苹果创建的GameSecene一样

我想在我的“游戏场景”之外创建更多的场景,但它不起作用

下面是我的子类代码

主场景:

import SpriteKit
#if !os(iOS)
import AppKit
#endif

class MainScene : SKScene {

    override func didMoveToView(view: SKView) {

        backgroundColor = UIColor.blueColor()

       }

}
import UIKit
import SpriteKit

class MainViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        if let scene = MainScene(fileNamed:"MainScene") {
            // 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
            skView.showsPhysics = true

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

            skView.presentScene(scene)
        }
    }
MainSceneView控制器:

import SpriteKit
#if !os(iOS)
import AppKit
#endif

class MainScene : SKScene {

    override func didMoveToView(view: SKView) {

        backgroundColor = UIColor.blueColor()

       }

}
import UIKit
import SpriteKit

class MainViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        if let scene = MainScene(fileNamed:"MainScene") {
            // 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
            skView.showsPhysics = true

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

            skView.presentScene(scene)
        }
    }

错误:“无法将'UIView'(0x1097f2b20)类型的值强制转换为'SKView'(0x108a4cad0)。”

创建新场景时,您需要实际创建一个新场景文件,而不仅仅是代码隐藏文件

要创建新的场景文件,请转到文件,新建,文件,然后在您的部分中转到iOS,SpriteKit场景。这将创建所需的sks文件

编辑:


如果出现错误
无法将“UIView”类型的值强制转换为“SKView”
,这是因为在故事板中,ViewController主视图没有自定义的SKView类。在情节提要文件中,打开视图控制器,单击该控制器的视图,确保右侧面板可见,然后选择identity inspector选项卡(它可能是从左侧开始的第三个,看起来像一个标志或带有窗口的信封)。在“自定义类”下,查找“类”文本框,并将其放入SKView中创建新场景时,您需要实际创建一个新场景文件,而不仅仅是代码隐藏文件

要创建新的场景文件,请转到文件,新建,文件,然后在您的部分中转到iOS,SpriteKit场景。这将创建所需的sks文件

编辑:


如果出现错误
无法将“UIView”类型的值强制转换为“SKView”
,这是因为在故事板中,ViewController主视图没有自定义的SKView类。在情节提要文件中,打开视图控制器,单击该控制器的视图,确保右侧面板可见,然后选择identity inspector选项卡(它可能是从左侧开始的第三个,看起来像一个标志或带有窗口的信封)。在“自定义类”下,查找“类”文本框,并将其放入SKView中,以创建更多的
SKScene
以及
gamesene

  • 转到
    新文件
  • 选择触摸类
  • 单击
    Next
  • 子类:手动键入
    SkScene
  • 创造
  • 导入
    SpriteKit

除了
游戏场景

  • 转到
    新文件
  • 选择触摸类
  • 单击
    Next
  • 子类:手动键入
    SkScene
  • 创造
  • 导入
    SpriteKit


也许是在UIViewController中将类命名为“MainView”而不是“MainScene”的地方,在UIViewController中?很多人似乎总是忽略这一部分,所以我想问,你是否制作了MainScene.sks文件,这就是你的问题
MainScene(文件名为:“MainScene”)
正在寻找MainScene.sks,不是,斯威夫特。mainsecene.sks是实际的场景文件,它保存场景的所有初步数据。mainsecene.swift只是告诉它应该如何操作的幕后代码,也许是您在UIViewController中将类命名为“MainView”而不是您声明的“mainsecene”?很多人似乎总是忽略这一部分,所以我要问,您是否制作了mainsecene.sks文件?这就是您的问题。
mainsecene(文件名为:“mainsecene”)
正在查找mainsecene.sks,而不是mainsecene.swift。mainsecene.sks是实际的场景文件,它保存场景的所有初步数据。mainsecene.swift只是幕后的代码,告诉它应该如何在Interface Builder文件中操作输出控制台:Unknown class _TtC6SKView18MainViewController。没问题,你在看吗?不是ViewControllerServiceController不是View您需要在视图上执行此操作,这就是SKView,UIView的子类我需要将UIViewController更改为UIView?输出控制台:接口生成器文件中的未知类_TtC6SKView18MainViewController。没问题,你在看吗?不是ViewControllerServiceController不是View您需要在视图上执行此操作,这就是SKView,UIView的子类我需要将UIViewController更改为UIView?在您创建的文件中导入SpriteKit在您创建的文件中导入SpriteKit