ゲームパッド (XBox) のスティックがいつ解放されるかを確認するのに問題があります。ボタンを最初に押すと、pollData = 1.0 になり、離すと pollData = 0.0 になります。
アナログ スティックでは、pollData = 0.0 のようなイベントはありません。
助けてくれてありがとう!
すでに軸を
Component component;
(テストで軸であることを確認する
if(component.isAnalog())
次に、呼び出すことで位置を取得できます
component.getPollData()
返される値は -1 から 1 の間です。component.getIdentifier() が Component.Identifier.Axis.X または Component.Identifier.Axis.Y に等しいかどうかに応じて、-1 は左/下、+1 は右/上です。
だからあなたは次のようなことができます
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...
}