Spritekit(Swift)是否允许使用两个不同的Camera节点?

时间:2017-06-28 06:19:48

标签: ios swift camera sprite-kit

所以我正在开展一个需要使用两个或更多不同摄像机节点的项目。问题是,当我要求激活和使用第二个摄像机节点时,我收到信号SIGABRT错误。我想我明白为什么会出现这个错误,因为已经存在一个活动的摄像机节点。但是,我的问题是我是否可以在一个场景中,在不同时间和不同位置使用两个摄像机节点。感谢您的任何帮助!

The Error

1 个答案:

答案 0 :(得分:3)

是的,你可以:

class GameScene: SKScene {

  let cam1 = SKCameraNode()
  let cam2 = SKCameraNode()

  override func didMove(to view: SKView) {
    addChild(cam1)
    addChild(cam2)
    addChild(SKSpriteNode(color: .blue, size: CGSize(width: 50, height: 50)))

    cam1.position.x -= 100
    cam2.position.x += 100

    camera = cam1
  }

  func swapCam() {
    guard let cam = self.camera else { fatalError() }

    if cam === cam1 {
      camera = cam2
    } else if cam === cam2 {
      camera = cam1
    } else { fatalError() }
  }

  override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    swapCam()
  }
}

从左侧cam1到右侧cam2点击屏幕跳跃,改变了内置&#34; hello world&#34;和我添加的蓝色方块。

您的问题与SKS文件有关(可能名称错误?),或者将!放在SKCameraNode的末尾(不知道为什么会这样)。