У меня есть тачпад, который я хочу использовать для перемещения камеры. Мой текущий код перемещает камеру, добавляя вектор vector.pirection, масштабированный на 1 до вектора положения. Кажется, я не могу использовать что-то меньшее, чем одно, потому что оно начинает странно крутиться, когда я это делаю. Я желаю использоватьПеремещение ПерспективыКамера с помощью сенсорной панели
touchpad.getKnobPercentX()
touchpad.getKnobPercentY()
методы масштабирования в зависимости от положения ручки. Проблема заключается в том, что он возвращает значение, меньшее единицы. Все, что находится выше одного, перемещает камеру слишком быстро. Это код, который я использую для обновления моей камеры, так как я не могу использовать ручку Touchpad.
private void setKnobAction() {
if (pad.getKnobPercentY() > 0f) {
camera.position.add(camera.direction.scl(1f));
camera.update();
}
if (pad.getKnobPercentY() < 0f) {
camera.position.sub(camera.direction.scl(1f));
camera.update();
}
if (pad.getKnobPercentX() > 0f) {
right = camera.direction.cpy().crs(Vector3.Y).nor();
camera.position.add(right.scl(1));
camera.update();
}
if (pad.getKnobPercentX() < 0f) {
right = camera.direction.cpy().crs(Vector3.Y).nor();
camera.position.sub(right.scl(1));
camera.update();
}
}
Этот метод получает вызов в моем методе render(), поэтому его вызывают несколько раз. Кроме того, если knobPercent находится в 0, он начнет вращаться странно.
ли я по-прежнему необходимо использовать новый вектор я создаю еще хотя он уже копирует вектор направления? – user1678551
Я думаю, что с копией он должен работать, но 'cpy()' создает новый 'Vector3', было бы лучше сохранить 1' Vector3' и изменить его значения. – Springrbua
Спасибо, я пытался понять это несколько недель. – user1678551