Как найти когда выпущена флешка
У меня есть проблема, чтобы проверить, когда палка в моем геймпаде (XBox) выпущен. С кнопками, когда я нажимаю первую, я получаю pollData = 1.0, а после отпускания я получаю pollData = 0.0.
С аналоговыми джойстиками у меня нет такого события как pollData = 0.0
Заранее спасибо за помощь!
1 ответ
Решение
Учитывая, что у вас уже есть ось как
Component component;
(чтобы убедиться, что это ось путем тестирования
if(component.isAnalog())
тогда вы можете получить должность, позвонив
component.getPollData()
Возвращаемое значение будет находиться в диапазоне от -1 до 1. -1 влево / вниз, +1 - вправо / вверх, в зависимости от того, равен ли component.getIdentifier() Component.Identifier.Axis.X или Component.Identifier.Axis.Y.
Так что вы могли бы сделать что-то вроде
bool xReleased = false, yReleased = false;
Component[] components = controller.getComponents();
for(Component component : components) {
if(component.isAnalog()) { //test that controller is analog
Identifier id = component.getIdentifier();
float axisPosition = component.getPollData(); //range: -1 to 1
if(id == Component.Identifier.Axis.X && axisPosition == 0)
xReleased = true;
if(id == Component.Identifier.Axis.Y && axisPosition == 0)
yReleased = true;
}
}
if(xReleased && yReleased) {
//do something...
}