【发布时间】:2016-10-07 07:19:52
【问题描述】:
这是我的视图控制器代码
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 = SKScene(fileNamed: "GameScene") {
// 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
}
}
这是我的 GameScene 代码
import SpriteKit
import GameplayKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
print("gets called")
}
但由于某些原因,在调试区域中,它没有打印“gets call”,这表明 didMove 甚至没有被调用。这里发生了什么事?我错过了什么吗?
【问题讨论】:
-
是否正在显示场景? Xcode 有一个非常强大的调试器,你可以在
if let view = self.view as! SKView?上设置一个断点,看看是否正在呈现场景。 -
为此,.sks 文件需要将场景的自定义类字段设置为“GameScene”。我要做的第一件事是仔细检查您是否在 .sks 编辑器中这样做了。如果是这种情况,那么可能是您遇到了模块名称问题。如果您的项目具有多个目标,则可能会发生这种情况 - 您可能必须从构建设置中输入模块名称才能使其适用于该特定目标。
标签: ios swift xcode sprite-kit