Swift 将SKScene添加到UIViewController时出错
我想要什么 一个无限的背景,在屏幕中间随机添加对象(在我的例子中是小星星)。然后,这些对象需要以一定的速度移出屏幕。这样,我想给用户一种感觉,他们正在“进入太空”,看到他们正在经过的星星 我拥有的 具有UIViewController类的单视图应用程序 问题 我认为正确的方法是添加一个场景来完成我想要的任务。但是,在UIViewController旁边添加SKScene类会给我带来一个错误:“从类‘UIViewController’和‘SKScene’的多重继承”。我需要将SKScene添加到UIViewController,以便调用一些重要的函数。在Stackoverflow上搜索时,我遇到了这样一个问题:但是我不能调用某些函数,比如“override func update(current time:CFTimeInterval){}”,因为答案没有显示如何实现SKScene类。此答案将删除整个UIViewController类:。其他答案对我没有帮助 问题 向UIViewController类添加SKScene类的正确方法是什么,这样我就可以完成我想要的任务Swift 将SKScene添加到UIViewController时出错,swift,sprite-kit,skscene,Swift,Sprite Kit,Skscene,我想要什么 一个无限的背景,在屏幕中间随机添加对象(在我的例子中是小星星)。然后,这些对象需要以一定的速度移出屏幕。这样,我想给用户一种感觉,他们正在“进入太空”,看到他们正在经过的星星 我拥有的 具有UIViewController类的单视图应用程序 问题 我认为正确的方法是添加一个场景来完成我想要的任务。但是,在UIViewController旁边添加SKScene类会给我带来一个错误:“从类‘UIViewController’和‘SKScene’的多重继承”。我需要将SKScene添加到U
编辑:在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如何?可能吗?