Я разрабатываю игру с LibGDX, и у меня возникают проблемы с определением fling
от pan
.Определение бросания с кастрюли в libgdx
Мои GestureListener
:
@Override
public boolean fling(float velocityX, float velocityY, int button) {
//if (velocityX > 1000f) {
// I can use this to exclude slow pans from the executing a fling
System.out.println("Flinged - velocityX: " + velocityX + ", button: " + button);
//}
return false;
}
@Override
public boolean pan(float x, float y, float deltaX, float deltaY) {
// but there doesn't seem to be a way to have this not fire on a fling
System.out.println("Panned - deltaX: " + deltaX);
return false;
}
@Override
public boolean panStop(float x, float y, int pointer, int button) {
System.out.println("Pan Stop - pointer: " + pointer + ", button: " + button);
return false;
}
Проблема заключается в том, что если оба pan
и fling
огонь. Я понимаю, что fling
в основном быстрый pan
, но мне нужно иметь возможность определить между двумя жесты, чтобы я мог обрабатывать каждый отдельно.
Как я могу предоставить уникальные действия для fling
и pan
?
Это технически работает, но, кажется, невозможно получить «почувствовать» право. Я могу обнаружить между панорамированием и стрельбой, однако я долгое время играл с длительной продолжительностью нажатия, и кажется, что почти невозможно получить хороший номер для этого. ~ 100 мс (0,1 с), казалось, работал лучше всего для меня во время тестирования на моем Nexus 5, но это было непротиворечиво. Иногда то, что казалось мне кастрюлем (медленнее, чем салфетка/бросок), не регистрировалось, а иногда и так. – Townsfolk