Swift 将SKScene添加到UIViewController时出错

Swift 将SKScene添加到UIViewController时出错,swift,sprite-kit,skscene,Swift,Sprite Kit,Skscene,我想要什么 一个无限的背景,在屏幕中间随机添加对象(在我的例子中是小星星)。然后,这些对象需要以一定的速度移出屏幕。这样,我想给用户一种感觉,他们正在“进入太空”,看到他们正在经过的星星 我拥有的 具有UIViewController类的单视图应用程序 问题 我认为正确的方法是添加一个场景来完成我想要的任务。但是,在UIViewController旁边添加SKScene类会给我带来一个错误:“从类‘UIViewController’和‘SKScene’的多重继承”。我需要将SKScene添加到U

我想要什么

一个无限的背景,在屏幕中间随机添加对象(在我的例子中是小星星)。然后,这些对象需要以一定的速度移出屏幕。这样,我想给用户一种感觉,他们正在“进入太空”,看到他们正在经过的星星

我拥有的

具有UIViewController类的单视图应用程序

问题

我认为正确的方法是添加一个场景来完成我想要的任务。但是,在UIViewController旁边添加SKScene类会给我带来一个错误:“从类‘UIViewController’和‘SKScene’的多重继承”。我需要将SKScene添加到UIViewController,以便调用一些重要的函数。在Stackoverflow上搜索时,我遇到了这样一个问题:但是我不能调用某些函数,比如“override func update(current time:CFTimeInterval){}”,因为答案没有显示如何实现SKScene类。此答案将删除整个UIViewController类:。其他答案对我没有帮助

问题

向UIViewController类添加SKScene类的正确方法是什么,这样我就可以完成我想要的任务


编辑:在9GAG上发现了这一点,这正是我想要的:那些星星是从左上方传来的,重放应该在我的应用程序的屏幕中间。

当然,这是可能的。与直接将
SKScene
添加到
UIViewController
不同,您需要先通过
SKView
扭曲
SKScene
,然后将
SKView
添加到
UIViewController

import UIKit
import SpriteKit


class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Configure the view.
        // Core:- convert the base view/UIView of UIViewController to SKView
        let rootView = self.view as! SKView
        //            skView.showsFPS = true
        //            skView.showsNodeCount = true

        /* Sprite Kit applies additional optimizations to improve rendering performance */
        rootView.ignoresSiblingOrder = true
        rootView.frameInterval = 1

        //init your SKScene
        let rootMenuScene = YourScene(size: rootView.bounds.size)
        rootMenuScene.scaleMode = .resizeFill

        //warp in SKView
        rootView.presentScene(rootMenuScene) 
    }
    ...

}

正如链接问题的答案所解释的,您不能直接将SKView添加到UIView,SKScene根本不是视图,要显示它,您必须先将其添加到SKView。好的,但是将SKView添加到现有uiviewcontroller如何?可能吗?