使用 SKCameraNode 建立 SKScene(iOS 9 及更高版本)
你可以將 SKCameraNode 放入 SKScene 中,以定義 SKView 中顯示場景的哪個部分。將 SKScene 視為一個 2D 世界,其上方有一個漂浮在其上的攝像頭:SKView 將顯示攝像頭看到的內容。
例如,相機可以附加到主角的精靈上,以跟隨滾動遊戲的動作。
SKCameraNode 有四個引數,用於定義場景的哪個部分:
- position :這是攝像機在場景中的位置。渲染場景以將此位置放置在 SKView 的中間。
- xScale 和 yScale :這些定義了場景在檢視中的縮放方式。保持這兩個值相同,以避免扭曲檢視。值 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)