Я пытаюсь воссоздать бонусную сцену из игры Sonic the Hedgehog 2, в которой он путешествует по полуколбам, собирая кольца, на Android Studio. Прямо сейчас я хочу использовать движение персонажа, которое будет определяться акселерометром телефона (Z-вращение) в соответствии с параболой; положение персонажа НЕ должно превышать края трубы. Проблема в том, что независимо от того, что я делаю с координатами x и y, изменение положения минимально. Я использую эмулятор Nexus 1080 x 1920. Любые дополнительные предложения, связанные с вращением или анимацией персонажа, также приветствуются.
Вот видео для справки: https://youtu.be/JgbFHHHE4Vk
И мой метод onSensorChanged () (x - это «левое» значение для растрового изображения, y - «верх», а z - значение z-вращения:
@Override
public void onSensorChanged(SensorEvent event) {
//tilt phone and change position
float[] values = event.values;
float z = values[0];
x = (1080/360) * (z + 180);
y = (-109 / 21609) * (x - 442) * (x - 442) + 975;
Log.d("TAGz", "(" + x + ", " + y + ")");
}
EDIT:
Я проверил координаты x и y через Logcat, и кажется, что x, по причине, которую я не могу обнаружить, равен 540, когда z равен 180 градусам, и 540, когда z равен -180 градусов