gpt4 book ai didi

ios - SpriteKit - didMovetoView 未被调用

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:49 26 4
gpt4 key购买 nike

这是我的 View Controller 代码

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")
}

但是由于某些原因,在debug区,并没有打印“gets called”,这说明didMove根本就没有被调用过。这里发生了什么事?我错过了什么吗?

最佳答案

iOS 9 的方式

在您的 GameViewController 中尝试直接呈现您的 GameScene 而不是通用的 SKScene。

if let scene = GameScene(fileNamed: "GameScene") { 
...

记住“fileNamed”不是 .swift 文件的名称,它是用于 xCode 级别编辑器的 .sks 文件的名称。

新的 iOS 10 方式

Apple 现在似乎更喜欢像您尝试的那样传递一个通用的 SKScene。

  if let scene = SKScene(fileNamed: "GameScene") { ... }

要使其正常工作,请转到相关的 .sks 文件并转到右侧的检查器。单击倒数第二个项目(自定义类)并将 .swift 文件的名称输入到自定义类字段中。

希望这对您有所帮助。

关于ios - SpriteKit - didMovetoView 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39911604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com