2015-09-27 49 views

回答

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) 
     } 
    } 

再比如,你可以把它放入數組

+0

所以基本上我是指針索引? –

+0

yup - 查看我在答案中附加的方法參考(橙色塊文本) –

+0

如果我不想實現InputListerner,那麼touchdown()方法有一個指針參數,如何使用該指針變量來選擇使用什麼指針/手指。 –

1

如何檢測手指的使用數量?

你可以用getPointerCount()

MotionEvent做到這一點,您可以檢測多少個手指在屏幕上做這個:

int PointerCount = event.getPointerCount(); 

我需要知道,如果用戶是使用兩個手指,如果他們被放置在正確的位置

你可以n獲得X,Y並對其進行比較。

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

對於您可以檢查MotionEvent Documentation,讓你可以有你想要的更多信息。

+0

x和y的位置將得到的座標手指,第二根手指怎麼樣?手指應該同時在屏幕上。我的意思是我如何獲得兩個手指的座標,如果他們同時觸摸屏幕 –

+0

另外我使用libgdx,我不能使用MotionEvent類, –

1

GestureListenerInputProcessor都有touchDown方法。這具有屏幕上每個手指的x和y值(指針)。實施其中一種方法,您可以覆蓋觸地得分以滿足您的需求。 This是一個很好的教程。希望這可以幫助。