我想知道如何在我的游戏屏幕上触摸手指的总数。
谢谢你
答案 0 :(得分:11)
如果您使用InputProcessor
进行基于事件的输入处理,只需在touchDown
处递增一个计数器,然后在touchUp
递减计数器。
如果您使用Gdx.input
进行基于轮询的输入处理,请使用isTouched(int)
调用来测试指针N是否已关闭。 libGDX实现tracks at most 20 pointers。我不认为任何硬件支持那么多(并且你的游戏也可能有下限)。但是,您必须检查所有指针ID,因为在指针ID N离开后指针ID N + 1可以保持活动状态。类似的东西:
int activeTouch = 0;
for (int i = 0; i < 20; i++) {
if (Gdx.input.isTouched(i)) activeTouch++;
}
答案 1 :(得分:3)
不知道这样做的正确方法,但我脑海里浮现出一种令人讨厌且简单的方法。 实现输入处理器reference for input processor here并获取计数器变量。在其触地方法内部将计数器增加1并且内部触摸方法将计数器减少1.计数器的值将给出当前触摸屏幕的总数。另一种方法是通过输入处理器中的指针。但我发现这种方法更简单:)
答案 2 :(得分:3)
你可以试试这个:
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++;}
}
}
}
我没有测试代码,但我希望它能运行。祝你好运。