建立一個 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)