【问题标题】:SKScene scaleMode not respected on first call to presentScene首次调用 presentScene 时不遵守 SKScene scaleMode
【发布时间】:2025-12-10 10:45:01
【问题描述】:

我正在 SpriteKit 中以编程方式创建 SKView 和 SKScene:

        CGRect rect;
        rect.origin.x = 0;
        rect.origin.y = 0;
        rect.size.width = 100;
        rect.size.height = 200;

        SKView* view = [[SKView alloc] initWithFrame:rect];

        view.showsFPS = true;
        view.showsNodeCount = true;
        view.showsDrawCount = true;

        CGSize size;
        size.width = 100;
        size.height = 100;
        SKScene* scene = [[SKScene alloc] initWithSize:size];

        scene.scaleMode = SKSceneScaleModeAspectFit;
        [view presentScene:scene];

第一次显示视图时,我得到了一个不正确缩放的场景:

但是,如果我稍微调整大小或移动视图,它就会正确缩放:

我做错了什么?

编辑:这只发生在 MaxOS(SKView 继承自 NSView)上,但不会发生在 iOS(SKView 继承自 UIView)上。

【问题讨论】:

    标签: macos sprite-kit


    【解决方案1】:

    我发现有另一个 MacOS 特定的窗口大小调整正在进行,它没有向视图发送调整大小的通知。这是我使用的框架 (JUCE) 中的问题,而不是 SpriteKit 中的问题。

    【讨论】:

      最近更新 更多