LIBGDX输入 - 触摸屏幕的手指数

时间:2013-05-31 06:48:57

标签: android libgdx

我想知道如何在我的游戏屏幕上触摸手指的总数

谢谢你

3 个答案:

答案 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++;}
                }
        }



    }

我没有测试代码,但我希望它能运行。祝你好运。