我正在使用Libgdx制作游戏,需要知道用户是否使用了两个手指,并且它们是否放置在正确的位置。一个手指应该在屏幕的右侧,另一个手指应该在屏幕的左侧。
最简单的解决方法不需要使用任何监听器,只需迭代一些指针并调用简单的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)
}
}
然后,您可以将其放入数组中。
GestureListener
和InputProcessor
都有touchDown
方法。该方法包含屏幕上每个手指(指针)的x和y值。实现其中任意一个并覆盖touchdown方法以满足您的需求。这篇是一个很好的入门教程。希望能对您有所帮助。
MotionEvent
和 getPointerCount()
来实现。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文档
,这样您就可以找到想要的内容。