gameViewController背景颜色无法更改
问题描述:
在spriteKit下运行的应用程序。几天前,gameScene在加载gameViewController后加载。今天,我改变了它的加载动作,只有当单击“开始”按钮时才加载gameScene,这意味着gameScene背景色是不可见的,我需要为gameViewController设置背景色。这是一个非常简单的任务,之前已经完成了很多次 ,但它坚持在浅灰色(下图)。gameViewController背景颜色无法更改
无法在spriteKit下更改gameViewController背景色吗?
我必须改变gameScene背景颜色吗?
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .green
// .......
}
@IBAciton func loadGameView() {
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
// if let scene = SKScene(fileNamed: "GameScene") {
if let scene = GameScene(fileNamed: "GameScene") {
scene.viewController = self
scene.size = self.view.frame.size
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
view.ignoresSiblingOrder = false
view.showsFPS = false
view.showsNodeCount = false
view.showsDrawCount = false
}
}
答
if let scene = GameScene(fileNamed: "GameScene") {
scene.viewController = self
scene.size = self.view.frame.size
scene.scaleMode = .aspectFill
//ADD THIS
scene.color = .green
scene.colorBlendFactor = 1
// Present the scene
view.presentScene(scene)
}
我知道这个解决方案可以设置背景颜色,但就是不想“开始”按钮被点击之前加载GameScene。其他解决方案?谢谢。 – jdleung
我不太了解你的问题。如果你改变了UIViewController,就像正常的UIViewControlle一样。但是我个人使用SKScene作为菜单 –
是的,通常UIViewController的背景色可以通过'self.view.backgroundColor'来设置,但是在SpriteKit下这似乎不起作用。 – jdleung