import UIKitimport SpriteKitimport GameplayKitclass 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 SpriteKitimport GameplayKit class GameScene: SKScene { overrIDe func dIDMove(to vIEw: SKVIEw) { print("gets called") }
但由于某些原因,在调试区域,它没有打印“被调用”,这表明dIDMove甚至没有被调用.这里发生了什么事?我错过了什么吗?
解决方法 iOS 9的方式在你的GameVIEwController中尝试直接呈现你的GameScene而不是通用的SKScene.
if let scene = GameScene(filenamed: "GameScene") { ...
请记住,“filenamed”不是.swift文件的名称,它是用于xCode级别编辑器的.sks文件的名称.
新的iOS 10方式
苹果现在似乎更愿意通过一个通用的SKScene,就像你正在尝试的那样.
if let scene = SKScene(filenamed: "GameScene") { ... }
要使其工作,请转到相关的.sks文件并转到右侧的检查器.单击第二个最后一项(自定义类),然后在自定义类字段中输入.swift文件的名称.
希望这可以帮助.
总结以上是内存溢出为你收集整理的ios – SpriteKit – didMovetoView未被调用全部内容,希望文章能够帮你解决ios – SpriteKit – didMovetoView未被调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)