【发布时间】:2020-04-19 04:34:11
【问题描述】:
在创建 SpriteKit + GameplayKit 项目时,我有以下由 Xcode 生成的样板代码:
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: "GameScene") {
// Get the SKScene from the loaded GKScene
if let sceneNode = scene.rootNode as! GameScene? {
// Copy gameplay related content over to the scene
// 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
}
}
}
}
为了测试不同的场景,我宁愿把 super.viewDidLoad() 之后的所有代码都移到一个函数中,这样我就可以很容易地测试不同的场景,而不必编辑很多代码。
我遇到的问题是:
if let sceneNode = scene.rootNode as! GameScene?
我不确定如何以通用方式将类类型传递给函数,因此我可以传递正确的场景类型,而不是 GameScene?。
我该怎么做?
【问题讨论】:
标签: swift sprite-kit gameplay-kit