我有问题,GameViewController不会加载我的GameMenu。如果我模拟我的应用程序,它将仅显示带有node:0和fps计数的灰屏。
这里是GameViewController.swift中的代码:
import UIKit
import SpriteKit
import GameplayKit
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = GameMenu(fileNamed: "GameMenu") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
我也尝试了这一行:
if let scene = SKScene(fileNamed: "GameMenu")
但它什么也没改变。
我还将自定义类“ GameMenu”添加到GameMenu.sks
我认为问题是此
if let scene = SKScene(fileNamed: "GameMenu")
行。我已经读过很多关于这个问题的书,但是我的情况没有成功。
我也尝试过这个:
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let gkScene = GKScene(fileNamed: "GameMenu.sks") {
if let skScene = gkScene.rootNode as? SKScene {
// Set the scale mode to scale to fit the window
skScene.scaleMode = .aspectFill
// Present the scene
view.presentScene(skScene)
}
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
但什么也没发生。
最佳答案
您必须从GKScene
文件将其作为.sks
加载,并从其SKScene
属性获取rootNode
。
if let gkScene = GKScene(fileNamed: "GameMenu") {
if let skScene = gkScene.rootNode as? SKScene {
// TODO
}
}
关于ios - Swift:从GameMenu.sks加载SKScene不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54363223/