Я создал новый проект Xcode Game. Я удалил анимацию по умолчанию в проекте и добавил новый файл Swift и новый .sks, называемый MenuScene.Не удалось отличить значение типа «SKScene»
В моей 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' находится на том же уровне каталога, что и другие быстрые файлы. Возможно, оно было добавлено не в том месте. –
Только что проверено, и все 4 файла находятся в одном каталоге. Может просто прибегнуть к изменению имен файлов и посмотреть, будет ли это работать. – Sawyer05
не обязательно должен находиться в том же каталоге – Knight0fDragon