libGDX предоставляет методы для работы с компасом, чтобы определить в игре или приложении текущею ориентацию устройства. Некоторые Android телефоны имеют встроенный датчик магнитного поля, который предоставляет информацию о том, как устройство ориентированно относительно северного магнитного полюса.
В libGDX запрос на доступность компаса с помощью метода isPeripheralAvailable()
, работает следующим образом:
boolean compassAvail = Gdx.input.isPeripheralAvailable(Peripheral.Compass);
После того, как вы определили что компас действительно доступен, вы можете опросить ее состояние:
float azimuth = Gdx.input.getAzimuth(); float pitch = Gdx.input.getPitch(); float roll = Gdx.input.getRoll();
Углы даны в градусах. Вот интерпретация этих значений:
- azimuth: представляет угол ориентации устройства вокруг Z-оси. Положительное направление Z-оси указывает на центр земли.
- pitch: представляет угол устройства вокруг X-оси. Положительном направлении X-оси. Положительное направление X-оси примерно указывает на запад и ортогонально Z-и Y-оси.
- roll: представляет угол ориентации устройства вокруг Y-оси. Положительное направление Y-оси указывает на северный магнитный полюс Земли, оставаясь ортогональным двух других осям.
Вот иллюстрация осей относительно Земли.