Согласованное преобразование значений гироскопа на Android и iOS с помощью Matter.jsIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Согласованное преобразование значений гироскопа на Android и iOS с помощью Matter.js

Сообщение Anonymous »

В своем проекте я использую демо-версию гироскопа Matter, и она отлично работает на Android. Однако мне не удалось добиться стабильных результатов на iOS.
Это соответствующий фрагмент, который я взял из демонстрации гироскопа:

Код: Выделить всё

if (window.screen.orientation.angle === 0) {
engine.gravity.x = Common.clamp(event.gamma, -90, 90) / 90
engine.gravity.y = Common.clamp(event.beta, -90, 90) / 90
} else if (window.screen.orientation.angle === 90) {
engine.gravity.x = Common.clamp(event.beta, -90, 90) / 90
engine.gravity.y = Common.clamp(-event.gamma, -90, 90) / 90
} else if (window.screen.orientation.angle === 180) {
engine.gravity.x = Common.clamp(event.gamma, -90, 90) / 90
engine.gravity.y = Common.clamp(-event.beta, -90, 90) / 90
} else if (window.screen.orientation.angle === -90) {
engine.gravity.x = Common.clamp(-event.beta, -90, 90) / 90
engine.gravity.y = Common.clamp(event.gamma, -90, 90) / 90
}
Однако, если я запущу это на своем iPad Air (5-го поколения) под управлением iOS 17.4.1, сила тяжести будет тянуться вправо, а не вниз. Я подумал, что могу пронюхать браузер и написать альтернативное преобразование бета/гаммы в x/y, что я и сделал, и это выглядит так:

Код: Выделить всё

if (window.screen.orientation.angle === 0) {
engine.gravity.x = Common.clamp(event.beta, -90, 90) / 90
engine.gravity.y = Common.clamp(-event.gamma, -90, 90) / 90
} else if (window.screen.orientation.angle === 90) {
engine.gravity.x = Common.clamp(event.gamma, -90, 90) / 90
engine.gravity.y = Common.clamp(event.beta, -90, 90) / 90
} else if (window.screen.orientation.angle === 180) {
engine.gravity.x = Common.clamp(-event.beta, -90, 90) / 90
engine.gravity.y = Common.clamp(event.gamma, -90, 90) / 90
} else if (window.screen.orientation.angle === 270) {
engine.gravity.x = Common.clamp(-event.gamma, -90, 90) / 90
engine.gravity.y = Common.clamp(-event.beta, -90, 90) / 90
}
Однако, когда мой клиент проверил вышеописанное на своем iPad Pro (3-го поколения) под управлением iOS 16.4.1, гравитация снова потянулась вправо, хотя на моем iPad она потянулась вниз.
p>
В итоге я написал небольшой инструмент, который позволяет мне наблюдать за показаниями бета/гаммы, и я могу подтвердить, что показания на iOS отличаются от показаний на Android. Я также наткнулся на эту библиотеку под названием Full Tilt, которая, по-видимому, решила эту проблему, но я не могу ее использовать, поскольку с тех пор она вышла из-под обслуживания (я собираю с помощью веб-пакета).
Кто-нибудь сталкивался с этим? Удалось ли вам с гироскопом и заставить его работать стабильно на устройствах Android и iOS?

Подробнее здесь: https://stackoverflow.com/questions/784 ... -matter-js
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Согласованное преобразование значений гироскопа на Android и iOS с помощью Matter.js
    Anonymous » » в форуме Android
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Как запустить Matter Bridge на Android
    Anonymous » » в форуме Android
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Создание функциональных ласт для игры в пинбол с помощью p5.js и Matter.js
    Anonymous » » в форуме Javascript
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Устройство протокола Python MATTER
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Цикл задержки Android для сбора данных из гироскопа
    Anonymous » » в форуме Android
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»