我有一个SpriteKit游戏,其中我使用scaleMode = .aspetFill覆盖iPhone和iPad屏幕。 当游戏加载第一个场景时,它正确地应用了我的.aspectFill,但是当我过渡到第二个场景和第三个场景时,无论我在哪里尝试,该方面均恢复为原始状态(意味着.aspectFill不再进行校正)。将语句再次放入代码中。
这是我在GameViewController中调用MainMenuScene的代码:
let scene = MainMenuScene(size: CGSize(width: 1024, height: 768))
scene.scaleMode = .aspectFill
skView.presentScene(scene)
这是我加载场景nr的代码。 2:
self.view?.presentScene(GameScene(size: size))
它显然正在保留.aspectFill(正在调整我的场景的大小)
但是当我尝试使用此代码加载第三个场景(以4,5,6等等)时:
func goToSceneFade(_ scene: SKScene) {
backgroundMusic?.run(SKAction.stop())
backgroundMusicPlayerReading?.stop()
let sceneTransition = SKTransition.fade(with: UIColor.darkGray, duration: 1)
self.view?.presentScene(scene, transition: sceneTransition)
}
场景加载时没有纵横比校正。 有什么建议吗?谢谢!