2013-05-31 9 views

Odpowiedz

11

Jeśli używasz InputProcessor do przetwarzania wejścia opartego na zdarzeniach, wystarczy zwiększyć licznik o touchDown i zmniejszyć licznik o touchUp.

Jeśli używasz Gdx.input do przetwarzania wejściowego opartego na odpytywaniu, użyj wywołania isTouched(int), aby sprawdzić, czy wskaźnik N nie działa. Implementacja libGDX tracks at most 20 pointers. Nie sądzę, że jakikolwiek sprzęt obsługuje tak wiele (i twoja gra może mieć również niższy limit). Będziesz musiał jednak sprawdzić wszystkie identyfikatory wskaźników, ponieważ wskaźnik N + 1 może pozostać aktywny po pozostawieniu identyfikatora wskaźnika N. Coś takiego:

int activeTouch = 0; 
for (int i = 0; i < 20; i++) { 
    if (Gdx.input.isTouched(i)) activeTouch++; 
} 
3

nie wiem właściwy sposób to robić, ale paskudny i prosty sposób zbliża się w moim umyśle. Wprowadź procesor wejściowy reference for input processor here i pobierz zmienną licznika. Wewnątrz metody przyziemienia zwiększenie licznika o 1 i wewnętrznej metody dotykowej zmniejsza licznik o 1. Wartość do liczenia da całkowitą liczbę palców dotykających obecnie ekranu. Innym sposobem na to jest wskaźnik w procesorze wejściowym. Ale uważam to metoda bardziej prostsze :)

+0

ok i czy możesz wyjaśnić inną metodę? – LeSam

3

można spróbować to:

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++;} 
       } 
     } 



    } 

nie przetestować kod, ale mam nadzieję, że to będzie działać. powodzenia.