使用 SKCameraNode 建立 SKScene(iOS 9 及更高版本)

你可以將 SKCameraNode 放入 SKScene 中,以定義 SKView 中顯示場景的哪個部分。將 SKScene 視為一個 2D 世界,其上方有一個漂浮在其上的攝像頭:SKView 將顯示攝像頭看到的內容。

例如,相機可以附加到主角的精靈上,以跟隨滾動遊戲的動作。

SKCameraNode 有四個引數,用於定義場景的哪個部分:

  • position :這是攝像機在場景中的位置。渲染場景以將此位置放置在 SKView 的中間。
  • xScaleyScale :這些定義了場景在檢視中的縮放方式。保持這兩個值相同,以避免扭曲檢視。值 1 表示沒有縮放,小於 1 的值將放大(使精靈看起來更大),高於 1 的值將縮小(使精靈看起來更小)。
  • zRotation :這定義了檢視在檢視中的旋轉方式。零值將不是旋轉。該值以弧度為單位,因此 Pi(3.14 …)的值將使檢視上下顛倒。

以下程式碼假設已經存在名為 skView 的 SKView(例如,使用 Interface Builder 建立全屏 SKView 中定義 ),並且已定義了名為 GameView 的 SKScene 的子類。此示例僅設定攝像機的初始位置,你需要移動攝像機(以與場景中其他 SKSpriteNodes 相同的方式)滾動檢視:

在 Swift 3 中

    let sceneSize = CGSize(width:1000, height:1000)
    let scene = GameScene(size: sceneSize)
    scene.scaleMode = .aspectFill

    let camera = SKCameraNode()
    camera.position = CGPointM(x:500, y:500)
    camera.xScale = 1
    camera.yScale = 1
    camera.zRotation = 3.14
    scene.addChild(camera)
    scene.camera = camera

    skView.presentScene(scene)