Мне интересно знать Как получить всего пальцев касаясь экрана на моей игре.Вход LIBGDX - Количество пальцев касание экрана
Спасибо Вам
Мне интересно знать Как получить всего пальцев касаясь экрана на моей игре.Вход LIBGDX - Количество пальцев касание экрана
Спасибо Вам
Если вы используете InputProcessor
для обработки ввода на основе событий, просто увеличьте счетчик на touchDown
и уменьшите счетчик на touchUp
.
Если вы используете Gdx.input
для обработки ввода на основе опроса, используйте вызов isTouched(int)
, чтобы проверить, не указана ли указатель N. Реализация libGDX tracks at most 20 pointers. Я не думаю, что какое-либо аппаратное обеспечение поддерживает многие (и ваша игра может иметь и нижний предел). Вам нужно будет проверить все идентификаторы указателя, хотя идентификатор указателя N + 1 может оставаться активным после того, как указатель id N остался. Что-то вроде:
int activeTouch = 0;
for (int i = 0; i < 20; i++) {
if (Gdx.input.isTouched(i)) activeTouch++;
}
Dont знать правильный способ сделать это, но неприятный и простой метод подходит в моем сознании. Внесите входной процессор reference for input processor here и возьмите переменную счетчика. Внутри его метода приземления увеличивайте счетчик на 1, а внутренний метод touchup уменьшает счетчик на 1. значение для счетчика даст общее количество пальцев, которые в данный момент касаются экрана. Другой способ сделать это - указатель на входной процессор. Но я считаю этот метод более проще :)
вы можете попробовать это:
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++;}
}
}
}
Я не проверял код, но я надеюсь, что он будет работать. удачи.
ОК и можете ли вы объяснить другой метод? – LeSam