#swift #xcode #core-motion
Вопрос:
Это мой первый пост здесь, так что, надеюсь, я делаю это правильно. Итак, в настоящее время я создаю игру для рыбалки с основным фреймворком движения, используя Swift 5. Та часть, с которой я сейчас борюсь, такова startDeviceMotionUpdates(to: queue) { ...code...}
.
var i = 1
while (i < 5) {
...
manager.startDeviceMotionUpdates(to: queue) {
(data, error) in
guard let data = data, error == nil else {
return
}
if (data.userAcceleration.z < -1.5) {
print("snap")
i = 1
print(i)
}
}
}
В настоящее время у меня есть это, так что, когда я щелкаю телефоном вниз, он выводит «щелчок» и номер на консоль. Однако я хотел бы изменить спрайт так, чтобы рыбак выглядел так, как будто он забрасывает удочку. Итак, я попытался заменить print("snap")
на self.fisher = SKSpriteNode(texture: fisherTextures[1])
, но это не совсем работает. Он по-прежнему печатает «привязку» к консоли, но спрайт остается тем же, когда приложение запущено. Как мне это исправить?
Кроме того, помимо изменения спрайта, когда телефон привязан вниз, я хотел бы сделать некоторые другие вещи, такие как позволить пользователю привязывать телефон вверх, когда поймана рыба. Но, похоже, это также должно быть сделано внутри блока/обработчика. В этом случае в нем будет приличное количество кодов. Это нормально? Есть ли какой-то другой чистый способ сделать это?
Наконец, кажется, что, как только он находится внутри блока/обработчика startDeviceMotionUpdates, он не выходит из него. У меня есть цикл while, настроенный на запуск от 1 до 5, но я вижу, что «я» увеличивается более чем на 5 в консоли.
О, и было бы действительно здорово, если бы вы могли порекомендовать мне какой-нибудь пример кода/статьи для чтения для Core Motion Framework.
TL;DR:
- Похоже, что обновление спрайта не работает внутри обработчика startDeviceMotionUpdates. Какие-нибудь исправления?
- Нормально ли иметь много функций внутри обработчика startDeviceMotionUpdates?
- Похоже, я не могу выйти из startDeviceMotionUpdates, как только я войду?
- Есть ли хороший пример кода/статьи для чтения в рамках Core Motion?
Спасибо!
Комментарии:
1. Криск, ТАК что лучше всего работает, если вы задаете один вопрос за пост, несколько вопросов часто игнорируются.