2017-06-28 35 views
2

所以我正在研究一個需要使用兩個或更多不同相機節點的項目。問題是,當我要求激活並使用第二個攝像機節點時,出現信號SIGABRT錯誤。我想我明白爲什麼會發生這個錯誤,因爲已經有一個活動的攝像機節點。但是,我的問題是我是否可以在一個場景中,在不同的時間和不同的位置使用兩個攝像機節點。感謝您的任何幫助!Spritekit(Swift)允許使用兩個不同的Camera節點嗎?

The Error

回答

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,改變內置的 「Hello World」 和藍色方塊我說的知名度。

你的問題與SKS文件(可能是錯誤的名稱?)有關,或者將!放在SKCameraNode的末尾(不知道爲什麼會出現這個問題)。

+0

非常感謝我的朋友!這非常幫助我!非常感謝! :) – Balaach

相關問題