如何检测正在使用的手指数量?

Sto*_*sdg 3 java android touch libgdx

我正在使用Libgdx进行游戏,我需要知道用户是否正在使用两根手指以及是否将它们放置在正确的位置.一根手指应位于屏幕右侧,另一根手指应位于屏幕左侧.

m.a*_*icz 5

没有使用任何监听器的最简单的解决方案是迭代一些指针计数并调用简单Gdx.input.isTouched()- 你必须设置一些"最大指针计数"但是嘿 - 人们通常只有20个手指:)

    final int MAX_NUMBER_OF_POINTERS = 20;
    int pointers = 0;

    for(int i = 0; i < MAX_NUMBER_OF_POINTERS; i++)
    {  
        if( Gdx.input.isTouched(i) ) pointers++;
    }

    System.out.println( pointers );
Run Code Online (Sandbox Code Playgroud)

由于参考:

具有给定索引的指针当前是否触摸了屏幕.指针从0到n索引.指针id标识手指在屏幕上向下的顺序,例如0是第一个手指,1是第二个手指,依此类推.当两个手指被触及并且第一个被抬起时,第二个手指保持其指数.如果另一个手指放在触摸屏上,则将使用第一个自由索引.

你也可以通过使用Gdx.input.getX()Gdx.input.getY()喜欢轻松触摸指针的位置

    final int MAX_NUMBER_OF_POINTERS = 20;
    int pointers = 0;

    for(int i = 0; i < MAX_NUMBER_OF_POINTERS; i++)
    {  
        if( Gdx.input.isTouched(i) )
        {
            x = Gdx.input.getX(i);
            y = Gdx.input.getY(i)
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后你可以把它放到数组中