Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Spritekit(Swift)是否允许使用两个不同的摄影机节点?_Ios_Swift_Camera_Sprite Kit - Fatal编程技术网

Ios Spritekit(Swift)是否允许使用两个不同的摄影机节点?

Ios Spritekit(Swift)是否允许使用两个不同的摄影机节点?,ios,swift,camera,sprite-kit,Ios,Swift,Camera,Sprite Kit,所以我正在做一个需要使用两个或更多不同摄影机节点的项目。问题是,当我调用激活并使用第二个摄影机节点时,我得到一个信号SIGABRT error。我想我理解为什么会发生此错误,因为已经有一个活动的摄影机节点。但是,我的问题是是否可以在一个场景中的不同时间和不同位置使用两个摄影机节点。谢谢你的帮助 是的,您可以: class GameScene: SKScene { let cam1 = SKCameraNode() let cam2 = SKCameraNode() overrid

所以我正在做一个需要使用两个或更多不同摄影机节点的项目。问题是,当我调用激活并使用第二个摄影机节点时,我得到一个信号SIGABRT error。我想我理解为什么会发生此错误,因为已经有一个活动的摄影机节点。但是,我的问题是是否可以在一个场景中的不同时间和不同位置使用两个摄影机节点。谢谢你的帮助

是的,您可以:

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()
  }
}
class游戏场景:SKScene{
设cam1=SKCameraNode()
设cam2=SKCameraNode()
覆盖func didMove(到视图:SKView){
addChild(cam1)
addChild(cam2)
addChild(SKSpriteNode(颜色:蓝色,尺寸:CGSize(宽度:50,高度:50)))
凸轮1.位置x-=100
凸轮2.位置x+=100
摄像机=摄像机1
}
func swapCam(){
guard let cam=self.camera else{fatalError()}
如果凸轮===凸轮1{
摄像机=摄像机2
}如果凸轮===凸轮2,则为else{
摄像机=摄像机1
}else{fatalError()}
}
覆盖func TouchesBegind(Touchs:Set,带有事件:UIEvent?){
swapCam()
}
}
点击屏幕从左cam1跳到右cam2,改变内置“hello world”和我添加的蓝色方块的可见性


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

非常感谢我的朋友!这对我帮助很大!非常感谢!:)