sobota, 27 lipca 2013

LIBGDX - obsługa akcelerometru

Przyspieszenie mierzone jest w metrach na sekundę do kwadratu (m/s2). Jeśli dana oś wskazuje dokładnie środek kuli ziemskiej, przyspieszenie dla tej osi wynosi 10 m/s2. Jeśli wskazuje przeciwny kierunek wówczas przyspieszenie ma wartość -10 m/s2.
Układ osi współrzędnych obowiązujący dla urządzeń z systemem Android.


Niestety dla urządzeń typu tablet układ osi jest inny. W urządzeniach z systemem Android przyjęto, że telefony domyślnie znajdują się w pozycji 'portrait' a tablety 'landscape'.

Sprawdzenie dostępności akcelerometru w urządzeniu:

boolean available = Gdx.input.isPeripheralAvailable(Peripheral.Accelerometer);


Odczytanie bieżącej orientacji ekranu:
int orientation = Gdx.input.getOrientation();


Funkcja zwraca wartość 0, 90, 180 lub 270. Daje to informację o różnicy między aktualną orientacją a natywną.

Odczytanie natywnej (domyślnej) orientacji ekranu:
Orientation nativeOrientation = Gdx.input.getNativeOrientation();
Funkcja zwraca wartość Orientation.Landscape lub Orientation.Portrait.

Odczytywanie wartości akcelerometru:
 float accelX = Gdx.input.getAccelerometerX();
 float accelY = Gdx.input.getAccelerometerY();
 float accelZ = Gdx.input.getAccelerometerZ();
W urządzeniach nie posiadających akcelerometru funkcje zwrócą wartość 0.
Przykład zastosowania akcelerometru: Super Jumper.


Brak komentarzy:

Prześlij komentarz