保存libgdx的功能

时间:2016-02-01 19:09:39

标签: android libgdx touch

在渲染libgdx时是否可以保存第一次触摸,释放然后读取第二次或新的触摸?我只找到了这个Gdx.input.isTouched(int),而int是同时有多少个手指的索引,但我需要释放第一个然后做更多的触摸。

如果以前回答过这个问题,在哪里?

2 个答案:

答案 0 :(得分:0)

我假设您想要保护触摸的坐标?

Gdx.justTouched只会运行一次,直到发布。或者,您可以实施GestureListener并使用tap(int x, int y, int button)方法。

因此,只有在检测到触摸时存储Gdx.input.getXGdx.input.getY并保存这些内容,直到您再次保存下一次触摸为止。

答案 1 :(得分:0)

您可以创建自己的InputProcessor并覆盖touchDown和touchUp事件:

声明你的触摸hashmap:

 private Map<Integer,TouchInfo> touches = new HashMap<Integer,TouchInfo>();

touchDown事件:

          @Override
        public boolean touchDown(int screenX, int screenY, int pointer, int button) {
            if(touches.get(pointer) == null){
                touches.put(pointer, new TouchInfo());
            }
                touches.get(pointer).touchX = screenX;
                touches.get(pointer).touchY = screenY;
                touches.get(pointer).touched = true;
            return true;
        }

和touchUp事件:

@Override
    public boolean touchUp(int screenX, int screenY, int pointer, int button) {
            touches.get(pointer).touchX = 0;
            touches.get(pointer).touchY = 0;
            touches.get(pointer).touched = false;
        return true;
    }

TouchInfo类:

class TouchInfo {
        public float touchX = 0;
        public float touchY = 0;
        public boolean touched = false;
    }

您可以处理设备支持的触摸次数,或者如果您愿意,可以根据需要限制输入。