创建一个 Scales 以适合 SKView 的 SKScene
SKScene 有一个 scaleMode 参数,该参数定义了如果它的大小和/或形状不同,它将如何改变其大小以适应 SKView 中呈现的 SKView。
scaleMode 有四个选项:
- AspectFit :场景缩放(但未拉伸),直到它适合视图。这可确保场景不会失真,但如果场景与视图的形状不同,则可能会有一些场景未覆盖的区域。
- AspectFill :场景缩放(但未拉伸)以完全填充视图。这样可确保场景不会失真并且视图已完全填满,但如果场景与视图的形状不同,则可能会裁剪场景的某些部分。
- 填充 :缩放场景(如果需要拉伸)以完全填充视图。这样可以确保视图完全填充,并且没有任何场景被裁剪,但如果场景与视图的形状不同,场景将会失真。
- ResizeFill :场景根本不缩放,而是改变其大小以适合视图的大小。
以下代码假定已经存在名为 skView 的 SKView(例如,使用 Interface Builder 创建全屏 SKView 中定义 ),并且已定义了名为 GameView 的 SKScene 子类,然后使用 AspectFill scaleMode:
在 Swift 3 中 :
let sceneSize = CGSize(width:1000, height:1000)
let scene = GameScene(size: sceneSize)
scene.scaleMode = .aspectFill
skView.presentScene(scene)