SKScene 可视尺寸小于视图边界
SKScene Viewable Size smaller than View bounds
我知道我的问题与 SKScene view not filling screen 类似,但那里的答案没有回答我遇到的问题。
我希望屏幕充满整个屏幕,而不仅仅是其中的一部分。我正在使用 Xcode 12.4 中的游戏模板,下图是游戏在 iPhone 12 模拟器上的运行方式。此外,场景大小为 750x1334。
当我使用 scene.size = view.bounds.size
更改场景大小时,我得到以下信息:
场景大小发生了变化,标签变大了,但可见大小仍然相同。我应该更改不同的尺寸设置吗?我是 SpriteKit 的新手,所以任何信息都会有所帮助。谢谢!
完整的 GameViewController 代码
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "GameScene") {
scene.scaleMode = .aspectFill
//Added below code in hopes to create larger viewable area
//scene.size = view.bounds.size
view.presentScene(scene)
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
override var shouldAutorotate: Bool {
return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
if UIDevice.current.userInterfaceIdiom == .phone {
return .allButUpsideDown
} else {
return .all
}
}
override var prefersStatusBarHidden: Bool {
return true
}
}
我认为这可能是因为 Apple 错误地从 iOS-only SpriteKit 游戏模板中删除了启动屏幕(它仍然存在于多平台模板中)。您需要添加和分配启动屏幕或选择主屏幕作为您的启动屏幕。
启动屏幕定义了应用程序的工作区域,因此如果没有它,视图边界和场景缩放模式将无法解决此问题。
更多信息见 。
我知道我的问题与 SKScene view not filling screen 类似,但那里的答案没有回答我遇到的问题。
我希望屏幕充满整个屏幕,而不仅仅是其中的一部分。我正在使用 Xcode 12.4 中的游戏模板,下图是游戏在 iPhone 12 模拟器上的运行方式。此外,场景大小为 750x1334。
当我使用 scene.size = view.bounds.size
更改场景大小时,我得到以下信息:
场景大小发生了变化,标签变大了,但可见大小仍然相同。我应该更改不同的尺寸设置吗?我是 SpriteKit 的新手,所以任何信息都会有所帮助。谢谢!
完整的 GameViewController 代码
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "GameScene") {
scene.scaleMode = .aspectFill
//Added below code in hopes to create larger viewable area
//scene.size = view.bounds.size
view.presentScene(scene)
}
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
}
}
override var shouldAutorotate: Bool {
return true
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
if UIDevice.current.userInterfaceIdiom == .phone {
return .allButUpsideDown
} else {
return .all
}
}
override var prefersStatusBarHidden: Bool {
return true
}
}
我认为这可能是因为 Apple 错误地从 iOS-only SpriteKit 游戏模板中删除了启动屏幕(它仍然存在于多平台模板中)。您需要添加和分配启动屏幕或选择主屏幕作为您的启动屏幕。
启动屏幕定义了应用程序的工作区域,因此如果没有它,视图边界和场景缩放模式将无法解决此问题。
更多信息见