gpt4 book ai didi

ios - 为什么我不能设置 SKScene(fileNamed :) in GameViewController?

转载 作者:搜寻专家 更新时间:2023-11-01 07:07:28 26 4
gpt4 key购买 nike

下面复制相关代码,我也在Github上放了一个简单的测试项目来演示这种情况:

https://github.com/prinomen/viewPresentSceneTest

我有一个 GameViewController 和一个 GameScene 类。我尝试使用 SKScene(fileNamed: "GameScene") 设置场景,但是该调用不起作用,因为场景没有出现并且该行之后的打印语句没有被调用。

我知道我可以使用不同的方式来设置场景,就像这样:

let scene = GameScene()

但我正在尝试理解 SpriteKit,令我困扰的是下面的代码不起作用。在另一个项目中,我能够使用 SKScene(fileNamed: "GameScene") 成功设置场景,如下面的代码所示。

有谁知道为什么它在这个项目中不起作用?

GameViewController.swift

import SpriteKit
class GameViewController: UIViewController {

override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()

if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "GameScene") {
print("SKScene was set")
// Set the scale mode fit the window:
scene.scaleMode = .aspectFill
// Size our scene to fit the view exactly:
scene.size = view.bounds.size
// Show the new scene:
view.presentScene(scene)
}
}
}
}

GameScene.swift

import SpriteKit
class GameScene: SKScene {

override func didMove(to view: SKView) {
self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
let logoText = SKLabelNode(fontNamed: "AvenirNext-Heavy")
logoText.text = "Game Scene"
logoText.position = CGPoint(x: 0, y: 100)
logoText.fontSize = 60
self.addChild(logoText)
}
}

最佳答案

我相信您需要一个 .sks 文件来加载这样的场景。您可能已将其从该项目中删除,但仍保留在另一个项目中。

这是 documentation 的内容说:

The name of the file, without a file extension. The file must be in the app’s main bundle and have a .sks filename extension.

关于ios - 为什么我不能设置 SKScene(fileNamed :) in GameViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47170062/

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