【发布时间】:2021-08-08 04:13:26
【问题描述】:
我正在尝试处理项目 1 并使用 SpriteKit 和 SwiftUI,但由于某种原因,我的 iPad 上的场景从未填满整个屏幕。
import SwiftUI
import SpriteKit
struct ContentView: View {
var scene: SKScene {
let screenWidth = UIScreen.main.bounds.width
let screenHeight = UIScreen.main.bounds.height
let scene = GameScene()
scene.size = CGSize(width: screenHeight, height: screenWidth)
scene.scaleMode = .fill
scene.backgroundColor = .green
return scene
}
var body: some View {
let screenWidth = UIScreen.main.bounds.width
let screenHeight = UIScreen.main.bounds.height
print(screenWidth)
return SpriteView(scene: scene)
.frame(width: screenWidth, height: screenHeight)
.ignoresSafeArea()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
现在看起来像这样:
任何想法我在这里缺少什么?
最大
【问题讨论】:
-
尝试删除
.frame(width: screenWidth, height: screenHeight),并将CGSize(width: screenHeight, height: screenWidth)替换为CGSize(width: screenWidth, height: screenHeight) -
即使我这样更改它也不会将棕色背景纹理缩放到全屏尺寸(GameScene 类的一部分)``` let background = SKSpriteNode(imageNamed: "road") background. zPosition = -1 // background.scale(to: CGSize(width: 1180, height: 700)) // background.scale(to: CGSize(width: CGFloat(1180), height: CGFloat(820))) addChild( background) ``` 我最后通过将背景放入 ZStack{} 中修复了它(更新了我的帖子)
标签: swiftui sprite-kit scenekit