watchOS 3.0在SpriteKit中检测表冠旋转

cro*_*erg 4 sprite-kit watchkit swift3 watchos-3 xcode8

因此,在watchOS 3.0中,您现在可以获得数字表冠的旋转.我设法在InterfaceController中使用crown IDRotate函数.但是我无法从SKScene Class中获得表冠的旋转.任何人都可以帮我这个我现在很迷茫吗?谢谢.

ric*_*ter 7

为了让那些crownDidRotate在你的界面控制器电话,你不得不采用WKCrownDelegate协议在接口控制器,并设置接口控制器作为delegatecrownSequencer.

crownDidRotate在其他类中获取调用,请采用该类中的WKCrownDelegate协议,并将该类的实例设置为delegate接口控制器的实例crownSequencer.

大概你已经有了这样的代码来设置你的SpriteKit场景:

class InterfaceController: WKInterfaceController {

    @IBOutlet var spriteGizmo: WKInterfaceSKScene!

    override func awake(withContext context: AnyObject?) {
        super.awake(withContext: context)

        let scene = MyScene(fileNamed: "MyScene")
        spriteGizmo.presentScene(MyScene(fileNamed: "MyScene"))
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您已WKCrownDelegateMyScene类中声明了一致性,只需添加一行以将其设置为接口控制器的冠序器的委托:

let scene = MyScene(fileNamed: "MyScene")
spriteGizmo.presentScene(MyScene(fileNamed: "MyScene"))
crownSequencer.delegate = scene
Run Code Online (Sandbox Code Playgroud)

(或者,您可以WKInterfaceSKScene在故事板中设置您的场景.在这种情况下,您仍然可以使用a WKInterfaceSKScene从您的界面控制器中引用IBOutlet.然后awake(withContext:),您可以通过该插座访问场景并将其设置为冠代表.)