如何发现棒被释放

时间:2014-01-09 18:01:19

标签: java xbox360 jinput

我有问题检查我的游戏手柄(XBox)中的粘贴是否被释放。 当我按下第一个按钮时,我得到pollData = 1.0,在释放之后我得到pollData = 0.0。

使用模拟棒我没有像pollData = 0.0

这样的事件

提前感谢您的帮助!

1 个答案:

答案 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...
}