我想知道如何获得在我的游戏中触摸屏幕的手指总数。
谢谢
如果您使用InputProcessor
基于事件的输入处理,只需在 处增加一个计数器并在 处touchDown
减少计数器touchUp
。
如果您正在使用Gdx.input
基于轮询的输入处理,请使用isTouched(int)
调用来测试指针 N 是否已关闭。libGDX 实现最多跟踪 20 个指针。我认为没有任何硬件支持这么多(您的游戏也可能有下限)。但是,您必须检查所有指针 ID,因为指针 id N+1 可以在指针 id N 离开后保持活动状态。就像是:
int activeTouch = 0;
for (int i = 0; i < 20; i++) {
if (Gdx.input.isTouched(i)) activeTouch++;
}
你可以试试这个:
float Ipsi=0.5;
if(Gdx.input.isTouched()){
int xTouch = Gdx.input.getX();
int yTouch = Gdx.input.getY();
int count=0;
ArrayList<Integer> lx = new ArrayList<Integer>();
ArrayList<Integer> ly = new ArrayList<Integer>();
lx.add(xTouch);
ly.add(yTouch);
//lx.size()=ly.size()
if(2<lx.size()){
for(int i = 0; i < lx.size(); i++){
if((lx.get(i)-lx.get(i+1)<Ipsi)&&(ly.get(i)-ly.get(i+1)<Ipsi))
{count++;}
}
}
}
我没有测试代码,但我希望它能工作。祝你好运。
不知道这样做的正确方法,但我想到了一个令人讨厌和简单的方法。在此处为输入处理器实现输入处理器引用并获取一个计数器变量。在其 touchdown 方法中,计数器加 1,在 touchup 方法中,计数器减 1。计数器的值将给出当前触摸屏幕的手指总数。另一种方法是通过输入处理器中的指针。但我发现这种方法更简单:)