7

我想知道如何获得在我的游戏中触摸屏幕的手指总数。

谢谢

4

3 回答 3

12

如果您使用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++;
}
于 2013-05-31T15:17:30.043 回答
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++;}
                }
        }



    }

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

于 2013-05-31T12:57:35.460 回答
3

不知道这样做的正确方法,但我想到了一个令人讨厌和简单的方法。在此处为输入处理器实现输入处理器引用并获取一个计数器变量。在其 touchdown 方法中,计数器加 1,在 touchup 方法中,计数器减 1。计数器的值将给出当前触摸屏幕的手指总数。另一种方法是通过输入处理器中的指针。但我发现这种方法更简单:)

于 2013-05-31T07:05:15.773 回答