Итак, на watchOS 3.0 теперь вы можете получить вращение цифровой короны. Мне удалось использовать функцию crownDidRotate в InterfaceController. Но я не могу получить вращение короны внутри класса SKScene. Может ли кто-нибудь помочь мне с этим, я потерял прямо сейчас? Спасибо.watchOS 3.0 обнаружение вращения короны в SpriteKit
ответ
Чтобы получить эти crownDidRotate
вызовов в контроллере интерфейса, вы должны были принять протокол WKCrownDelegate
в контроллере интерфейса и установить контроллер интерфейса как delegate
его crownSequencer
.
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"))
}
}
Если вы объявили WKCrownDelegate
соответствия в вашем MyScene
классе, просто добавьте строку, чтобы установить его в качестве делегата от контроллер интерфейса венец секвенсор:
let scene = MyScene(fileNamed: "MyScene")
spriteGizmo.presentScene(MyScene(fileNamed: "MyScene"))
crownSequencer.delegate = scene
(В качестве альтернативы, вы можете установить сцену ваших WKInterfaceSKScene
«ы в раскадровке В этом случае, вы можете ссылаться на WKInterfaceSKScene
из вашего интерфейса. контроллер с IBOutlet
. Тогда в awake(withContext:)
, вы можете получить доступ к сцене через эту розетку и установить его в качестве коронной делегаты)
В watchOS-просто любой объект объекта может получить цифровые коронные события, установив их в качестве делегата:.
let crownSequencer = WKExtension.shared().rootInterfaceController!.crownSequencer
crownSequencer.delegate = self
crownSequencer.focus()
Затем считывается значение по реализации:
func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double)
важно вызвать focus()
, особенно для контроллеров, чьи интерфейс подходит к экрану и не нужна реально прокрутки.
- 1. TouchEvents в watchOS 3 SpriteKit?
- 2. CoreLocation in WatchOS 3.0
- 3. Сдвиг вращения спутника SpriteKit
- 4. SpriteKit: обнаружение перекрытия вращающихся узлов?
- 5. Swift SpriteKit - Постепенное увеличение вращения
- 6. SpriteKit - выбор узла после вращения
- 7. Обнаружение вращения телефона (движение)
- 8. Обнаружение вращения подзонов
- 9. Обнаружение вращения акселерометром
- 10. Swift/SpriteKit обнаружение столкновений
- 11. Обнаружение вращения в ландшафт вручную
- 12. Обнаружение столкновения SpriteKit Swift
- 13. Обнаружение столкновений в SpriteKit + Swift
- 14. Обнаружение вращения главного экрана Android
- 15. Обнаружение оси вращения из pointcloud
- 16. Обнаружение вращения на Android WebView
- 17. iPhone OpenGL: обнаружение вращения объекта
- 18. Скорость вращения шара SpriteKit различается по размеру
- 19. Обнаружение фрагментов Roboelectric 3.0
- 20. Я не могу понять систему вращения SpriteKit
- 21. SpriteKit Неправильное обнаружение множественных столкновений
- 22. Spritekit SKLightNode: обнаружение света столкновения
- 23. SpriteKit: обнаружение полного перекрытия узлов
- 24. Spritekit/UIBeziers: Обнаружение касаний/nodeAtPoint
- 25. Обнаружение вращения отсканированного изображения в C#
- 26. Обнаружение вращения в подклассе UIInputViewController. Расширение клавиатуры
- 27. Обнаружение контакта после изменения контактаTestBitMask в SpriteKit
- 28. Обнаружение столкновений не работает в SpriteKit
- 29. Обнаружение столкновения Sprite без отскока в SpriteKit
- 30. Обнаружение столкновений между двумя SKSpriteNode в SpriteKit?