【发布时间】:2016-09-22 23:07:54
【问题描述】:
我创建了一个新的 Xcode 游戏项目。我剥离了项目中的默认动画,并添加了一个新的 Swift 文件和一个新的 .sks,它们都称为 MenuScene。
在我的 GameViewController 中,我将 GameScene 的引用替换为 MenuScene,因为我希望这个场景首先启动:
override func viewDidLoad() {
super.viewDidLoad()
// Load 'GameScene.sks' as a GKScene. This provides gameplay related content
// including entities and graphs.
if let scene = GKScene(fileNamed: "MenuScene") {
// Get the SKScene from the loaded GKScene
if let sceneNode = scene.rootNode as! MenuScene? {
// Set the scale mode to scale to fit the window
sceneNode.scaleMode = .aspectFill
// Present the scene
if let view = self.view as! SKView? {
view.presentScene(sceneNode)
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
}
}
当我尝试启动时,我收到以下错误:
Could not cast value of type 'SKScene' (0x1105624) to 'Spritekit10.MenuScene' (0x104c38).
如果我将它改回 GameScene,它似乎具有完全相同的设置,一切似乎都很好。
谁能指出这个问题的正确方向?
在自定义类下的MenuScene.sks 上,我添加了MenuScene,认为这是问题所在,但错误仍然显示(当我返回时,文本字段似乎随机清除。
import SpriteKit
import GameplayKit
class GameScene: SKScene {
override func sceneDidLoad() {
}
}
.
import SpriteKit
import GameplayKit
class MenuScene: SKScene {
override func sceneDidLoad() {
}
}
【问题讨论】:
-
您可以检查文件
MenuScene.swift是否与其他swift文件位于同一目录级别。它可能被添加到错误的位置。 -
刚查了一下,4个文件都在同一个目录下。可能只是求助于更改文件名,看看是否可行
-
不需要在同一目录下
标签: sprite-kit swift3 ios10