使用 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)