Zastanawiam się, jak uzyskać łączną liczbę palców dotykając ekranu w mojej grze.Wejście LIBGDX - Liczba palców dotykających ekranu
Dziękujemy
Zastanawiam się, jak uzyskać łączną liczbę palców dotykając ekranu w mojej grze.Wejście LIBGDX - Liczba palców dotykających ekranu
Dziękujemy
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++;
}
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 :)
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.
ok i czy możesz wyjaśnić inną metodę? – LeSam