首页 > 解决方案 > SpriteKit 场景的大小/缩放不正确

问题描述

我正在尝试在我的 SwiftUI 应用程序中实现 SpriteKit,但是场景(一个 SwiftUI SpriteView)的大小和/或缩放不正确,我不知道如何解决这个问题。正如您所期望的那样,场景应该包含在屏幕大小中。

我的ContentView

struct ContentView: View {
    var scene: SKScene {
        let scene = GameScene()
        let screenSize = UIScreen.main.bounds

        scene.size = CGSize(width: screenSize.width, height: screenSize.height)
        scene.scaleMode = .fill
        
        return scene
    }
    
    var body: some View {
        GeometryReader { geo in
            Group {
                SpriteView(scene: scene, transition: SKTransition.reveal(with: .down, duration: 1.0))
                    .ignoresSafeArea()
                    .frame(width: geo.size.width, height: geo.size.height)
            }
        }
    }
}

如何使场景正确适合屏幕?

标签: swiftswiftuisprite-kit

解决方案


尝试.aspectFill案例而不是.fill

scene.scaleMode = SKSceneScaleMode.aspectFill

推荐阅读