libgdx多个泛事件

时间:2017-06-28 09:51:14

标签: java android libgdx

在我的游戏中,用户应该用一根手指在屏幕左侧移动玩家,并且能够用右手射击。问题是,当射击时,玩家不能再移动了。我发现了一些相关的问题,但没有人帮助我。我尝试使用2个不同的GestureListener类。其中一个检查屏幕右侧是否被触摸而另一个检查左侧是否仍然无法正常工作。

这是第一类的pan方法

va

这是第二类的方法

    public boolean pan(float x, float y, float deltaX, float deltaY) {
        lastTouch = new Vector2(x, y).sub(deltaX, deltaY);
        Vector2 newTouch = new Vector2(x, y);

        Vector2 delta = newTouch.cpy().sub(lastTouch);
        if(lastTouch.x < Gdx.graphics.getWidth()/2 && newTouch.x < Gdx.graphics.getWidth()/2) {
            stage.getPlayer().move(new Vector2(delta.x, -delta.y));
        }
        lastTouch = newTouch;
        return true;
    }

谢谢

1 个答案:

答案 0 :(得分:3)

LibGDX中的监听器倾向于使用布尔返回值来声明输入完成后的天气处理。当您返回true时,侦听器将停止处理进一步的操作。

  

GestureListener可以通过分别从其方法返回true或false来表示它是否消耗了该事件,还是希望将其传递给下一个InputProcessor。

尝试将return方法更改为false并查看是否可以解决问题,否则请尝试将其转换为使用具有手指计数参数指针的touchDown和touchUp方法