Недавно я отправил версию своей игры TestFlight для внутреннего тестирования. Мой друг заметил, что на его iPhone 6S Plus элементы управления для съемки не работают правильно.Swift SpriteKit 3D Touch и касания перемещены
Элементы управления являются следующие
1) левая половина экрана = прыгать
2) правая половина экрана = стрелять
3) Сдвиньте и удерживайте на правой половине экрана = начать медленно движение
Теперь, когда мои методы касания начались, у меня есть небольшая задержка для съемки, поэтому, если касания переместились, это отменяет стрельбу и начинает медленное движение. Это, похоже, вызывает проблемы с телефонами с поддержкой 3D Touch.
Копаем дальше в этом я наткнулся на этот пост
iOS 9 Spritekit Double Tap Not Working on iPhone 6S
, где в основном говорится, что на 3D сенсорный устройств с поддержкой касаний перемещается метод вызывается автоматически.
On 3D Touch capable devices, touch pressure changes cause
touchesMoved:withEvent: to be called for all apps running on iOS
9.0. When running iOS 9.1, the method is called only for apps
linked with the iOS 9.0 (or later) SDK.
Apps should be prepared to receive touch move events with no
change in the x/y coordinates. "
Это, кажется, имеет смысл, почему у моего друга есть проблемы, если штрихи перемещаются всегда называются он отменит съемку и начать медленно мо, несмотря на то, что он не скользит по экрану.
Так мои вопросы является
1) Можно ли отключить 3D Прикосновение в SpriteKit играх?
2) Это ошибка?
3) любой другой способ использования касаний правильно перемещается на устройствах 3D Touch?
4) В качестве альтернативы я могу использовать распознаватели жестов, чтобы имитировать функцию слайда и удержания, которую я сейчас делаю в касаниях.
Спасибо за любую помощь
Просто быстрое предложение взглянуть на примерное приложение Демо-ботов и посмотреть, будет ли такой же вопрос в этом примере на iPhone 6S. –
Спасибо за предложение. Я часто использую образец DemoBots для своих проектов. Я только что проверил, и они дважды используют методы «touchhesMoved ..». Однако оба находятся в подклассах SKSpriteNodes, поэтому я удивляюсь, что это имеет значение. У меня нет устройства для 3D-touch, поэтому он отстой для тестирования. – crashoverride777
Я тоже. Вы можете распространять демо-ботов вашему другу через дистрибутив OTA (например, TestFlight) для тестирования в качестве последнего средства. –