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