swift - 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)
}
}
}
}
如何使场景正确适合屏幕?
解决方案
尝试.aspectFill
案例而不是.fill
:
scene.scaleMode = SKSceneScaleMode.aspectFill
推荐阅读
- ios - 如何使多个协议符合一个类并设计方法来输入和打印详细信息?
- java - 如何在 GraphQL 中使用参数列表创建查询?
- javascript - 如何让机器人回复表情符号?
- html - 按索引删除不起作用。角
- if-statement - If语句具有多个agruments来捕获鼠标位置
- mysql - sql-query 获取包含事务计数的报告
- django - django 使用自定义公司字段创建个人资料
- docplex - Docplex:构建表达式以从数组中获取值
- django - 使用 Docker 在本地运行 Django/Gunicorn 应用程序失败并显示 ERR_CONNECTION_REFUSED
- java - 将每个子字符串存储到不同的变量中