Ios Spritekit场景内容已放大

Ios Spritekit场景内容已放大,ios,sprite-kit,skspritenode,skscene,skview,Ios,Sprite Kit,Skspritenode,Skscene,Skview,我从视图控制器(向其传递难度字符串)以编程方式呈现游戏控制器/游戏场景,如下所示: class GameController: UIViewController { var difficulty: String! override func loadView() { self.view = SKView(frame: UIScreen.main.bounds) } override func viewDidLoad() {

我从视图控制器(向其传递
难度
字符串)以编程方式呈现游戏控制器/游戏场景,如下所示:

class GameController: UIViewController {

    var difficulty: String!

    override func loadView() {

        self.view = SKView(frame: UIScreen.main.bounds)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let skView = self.view as! SKView

        let scene = GameScene(size: view.frame.size)
        // Set the scale mode to scale to fit the window
        scene.scaleMode = .aspectFill
        scene.difficulty = difficulty
        // Present the scene
        skView.presentScene(scene)

        skView.ignoresSiblingOrder = true
    }
}
但是,当场景出现在屏幕上时,所有内容都被“放大”(
SKSpriteNode
s、
SKLabel
s等)

有人知道如何解决这个问题吗

非常感谢


PS:通过SKS演示正常,只是在iPad上定位存在问题。这种方法的问题是,我无法找到如何通过SKS将自定义变量
难度
传递给场景,即使我在故事板中将其自定义类更改为我的,这样也应该可以。

这里有两个问题。首先是我当前的设置有什么问题,其次我可以使用sks文件并继续传递数据

回答第二个问题,是的

if let gameScene = GameScene(fileNamed: "GameScene") {

    self.gameScene = gameScene
    self.gameScene.stage = 1
    self.gameScene.setupBasedOnStage()
    self.gameScene.scaleMode = .aspectFill
    self.view?.presentScene(self.gameScene, transition: SKTransition.reveal(with: .down, duration: 1.0))
}
您可以在显示页面之前设置任何自定义属性(在本例中为阶段),如果需要,可以调用设置函数以加载基于阶段的信息/图形


我在我的场景中使用sks文件,并一直这样设置它们。

Hey@Ron感谢您的回复,但在演示sks时,我无法访问
var困难:字符串在我的SKScene类中(在我的SKS文件中设置为自定义类)。有什么特别的设置吗?变量设置在哪里?在类内部但在函数外部?设置为私人吗?可能会在你的问题中发布一点场景类文件。另外,如果您将字符串设置为var-demobility=“”,则可以避免将其视为可选的
。aspectFill
为我执行此操作