Я делаю 2D игру.Телефон держится горизонтально, и персонаж двигается вверх / вниз и влево / вправо, чтобы избежать препятствий.Персонаж контролируется акселерометром на телефоне.Все работает нормально, если игрок не возражает против того, чтобы (0,0)
(точка, в которой персонаж остановился) находился, когда телефон держится идеально ровно.В этом сценарии можно просто прочитать значения Y и X напрямую и использовать их для управления символом.Значения акселерометра находятся в диапазоне от -10 до 10 (они умножаются на константу ускорения для определения скорости движения персонажа), libgdx
- это используемая структура.
Проблема в том, что (0,0)
isnЭто не очень удобно, поэтому идея состоит в том, чтобы откалибровать его так, чтобы 0,0 было установлено в положение телефона в определенный момент времени.
Что приводит меня к моему вопросу, как бы я это сделал?Я попытался просто прочитать текущие значения X и Y, а затем вычесть их.Проблема заключается в том, что когда телефон удерживается под углом 90 градусов, значение смещения X равно 10 (что является максимальным значением), поэтому его становится невозможно переместить, поскольку значение никогда не превысит 10 (10-10 = 0
).).Здесь как-то должна появиться ось Z, я просто не знаю, как.
Спасибо за помощь, я пытался объяснить как можно лучше, я пытался найти решение, но я не понимаюЯ даже не знаю, что означает то, что я ищу.