在渲染libgdx时是否可以保存第一次触摸,释放然后读取第二次或新的触摸?我只找到了这个Gdx.input.isTouched(int),而int是同时有多少个手指的索引,但我需要释放第一个然后做更多的触摸。
如果以前回答过这个问题,在哪里?
答案 0 :(得分:0)
我假设您想要保护触摸的坐标?
Gdx.justTouched
只会运行一次,直到发布。或者,您可以实施GestureListener
并使用tap(int x, int y, int button)
方法。
因此,只有在检测到触摸时存储Gdx.input.getX
和Gdx.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;
}
您可以处理设备支持的触摸次数,或者如果您愿意,可以根据需要限制输入。