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

时间:2015-09-27 09:23:08

标签: java android libgdx touch

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

3 个答案:

答案 0 :(得分: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 );

由于参考:

  

具有给定索引的指针当前是否触摸了屏幕。指针从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)
        }
    }

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

答案 1 :(得分:1)

  

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

您可以使用getPointerCount()

MotionEvent来执行此操作

您可以检测屏幕上有多少手指:

int PointerCount = event.getPointerCount();
  

我需要知道用户是否正在使用两根手指以及是否将它们放置在正确的位置

你可以得到X,Y并进行比较。

@Override
public boolean onTouch(View v, MotionEvent event) {
   int x = event.getX();
   int y = event.getY();
   return true;
}

有关详细信息,请查看MotionEvent Documentation,以便随时了解所需内容。

答案 2 :(得分:1)

GestureListenerInputProcessor都有touchDown方法。这具有屏幕上每个手指的x和y值(指针)。实施其中任何一个,您可以覆盖触地得分以满足您的需求。 This是一个很棒的教程。希望这会有所帮助。