我正在学习SpriteKit并使用关卡编辑器启动了一个小项目。
然而,由于某些原因,GameScene.swift和GameScene.sks似乎没有联系。下面是.sks文件设置的截图和.swift文件的viewDidLoad中的小打印语句。请让我知道我做错了什么。或者如果我遗失了什么。
spritekit .sks文件。
我的视图控制器的viewDidLoad功能。
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let screenSize = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
GameController.gameController.setGameManager(gameViewManager: self);
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "GameScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Present the scene
view.presentScene(scene)
}
}
}
答案 0 :(得分:1)
我们有一个正常的GameScene.swift
应该打印"你好"他的GameScene.sks
被GameViewController
调用。您没有指定GameController
是什么,但这不是问题,因为我认为您可能只是失去了游戏的流量,所以我试着帮助您(不要担心,
当你长时间专注于游戏的其余部分并且不记得起始流程时,就会发生这种情况。)
在Main.storyboard
你可能不会遇到这样的情况:
您的GameViewController
是初始视图控制器。
我的意思是,您应该在调用GameViewController
之前检查谁在您的情节提要上致电AppDelegate.swift
,或者didFinishLaunchingWithOptions
(在GameViewController
中)停止流程或致电其他观看。
因此,请检查谁是 IVC (初始视图控制器)并确保从开始或使用断点的其他viewControllers调用GameViewController
,或者只是在{{{ 1}}:
viewDidLoad
在库中添加或删除具有相同名称的文件时,可能会发生另一种情况。在这种情况下,尝试删除print("∙ \(type(of: self))")
和GameScene.swift
,清理并构建项目并重新添加这些文件(确保您的屏幕GameScene.sks具有正确的自定义类..)
检查编译来源列表以控制您的GameScene.sks
希望它有所帮助。