Игра для Android My Paper Plane - отличный пример того, как реализовать элементы управления наклоном, но я ' Я изо всех сил пытался понять, как я могу сделать что-то подобное.
У меня есть следующий пример, в котором используется getOrientation () из SensorManager. Все это находится на pastebin здесь . Он просто печатает значения ориентации в текстовые поля. Вот наиболее подходящий фрагмент:
private void computeOrientation() {
if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
m_lastMagFields, m_lastAccels)) {
SensorManager.getOrientation(m_rotationMatrix, m_orientation);
/* 1 radian = 57.2957795 degrees */
/* [0] : yaw, rotation around z axis
* [1] : pitch, rotation around x axis
* [2] : roll, rotation around y axis */
float yaw = m_orientation[0] * 57.2957795f;
float pitch = m_orientation[1] * 57.2957795f;
float roll = m_orientation[2] * 57.2957795f;
/* append returns an average of the last 10 values */
m_lastYaw = m_filters[0].append(yaw);
m_lastPitch = m_filters[1].append(pitch);
m_lastRoll = m_filters[2].append(roll);
TextView rt = (TextView) findViewById(R.id.roll);
TextView pt = (TextView) findViewById(R.id.pitch);
TextView yt = (TextView) findViewById(R.id.yaw);
yt.setText("azi z: " + m_lastYaw);
pt.setText("pitch x: " + m_lastPitch);
rt.setText("roll y: " + m_lastRoll);
}
}
Проблема в том, что выдаваемые значения выглядят бессмысленно, или, по крайней мере, нет способа определить, какой тип движения совершил пользователь. Я нарисовал диаграмму, чтобы указать 2 типа движения, которые я хотел бы обнаружить - 1. «наклон» для тангажа и 2. «поворот» для крена / поворота:
(Это изометрический вид на телефон в альбомном режиме, конечно)
Когда я наклоняю телефон вперед и назад вдоль его длинной оси - показано цифрой 1. - Я ожидал, что только одно из значений сильно изменится, но все они, кажется, кардинально меняются. Точно так же, если я поверну телефон вокруг воображаемой линии, выходящей из экрана - как показано на рисунке 2. - я надеюсь, что изменится только значение поворота, но все значения сильно изменятся.
Проблема в том, когда я откалибровать мою игру - что означает запись текущих значений углов x, y и z - позже я не знаю, как интерпретировать входящие обновленные углы, чтобы сказать: «Хорошо, похоже, вы наклонили телефон и хотите повернуть на 3 градуса» оставил". Это больше похоже на «хорошо, вы переместили телефон, и вы одновременно наклоняетесь и крутитесь», даже если намерение было всего лишь поворотом. Есть смысл?
Есть идеи? Я пробовал использовать remapCoordinateSystem, чтобы увидеть, влияет ли изменение оси. Никакой радости. Я думаю, что мне не хватает чего-то фундаментального: и используя инструмент AL, мы можем присвоить сборке строгое имя. И у нас также есть инструмент Sign, который используется для подписи ...
Я вижу инструмент вроде SN, который генерирует пару закрытых / открытых ключей для подписи сборки. и используя инструмент AL, мы можем присвоить сборке строгое имя
. И у нас также есть инструмент Sign, который используется для подписи сборки (возможно, для использования исключительно с сертификатами?).
В чем точная разница между ними ?. Нужно ли использовать инструмент подписи при работе с сертификатами и можем ли мы получить его SN? Или они совершенно разные? (12221] Пожалуйста, помогите.