2013-07-26 6 views
2

Я хотел бы использовать некоторые более сложные жесты сенсорного экрана, что вы не можете получить доступ изLibGdx: Используя Жест Слушатель

Gdx.input 

Я видел, что для этого я должен создать Жест слушателя, так что я создал класс GestureHandler и скопировал код из wiki. Мой обработчик жест выглядит следующим образом:

public class GestureHandler implements GestureListener { 

@Override 
public boolean touchDown(float x, float y, int pointer, int button) { 
    return false; 
} 

@Override 
public boolean tap(float x, float y, int count, int button) { 
    return false; 
} 

@Override 
public boolean longPress(float x, float y) { 
    return false; 
} 

@Override 
public boolean fling(float velocityX, float velocityY, int button) { 
    return false; 
} 

@Override 
public boolean pan(float x, float y, float deltaX, float deltaY) { 
    return false; 
} 

@Override 
public boolean zoom(float initialDistance, float distance) { 
    return false; 
} 

@Override 
public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2) { 
    return false; 
    } 
} 

Мой вопрос теперь, когда я настроил жест слушателя, как я могу его использовать. Как я могу получить информацию из этих методов? Спасибо за любую помощь!

ответ

6

Из wiki:

GestureDetector в маскировке InputProcessor. Чтобы прослушать жесты, нужно реализовать интерфейс GestureListener, а передать его конструктору GestureDetector. Детектор затем установить в качестве InputProcessor, либо на InputMultiplexer или как главный InputProcessor

Я признаю, что является довольно плотным. Но чуть дальше вниз на вики вы увидите:

Gdx.input.setInputProcessor(new GestureDetector(new MyGestureListener())); 

перефразировать выше, мы надеемся, менее плотного английского языка: ВашGestureHandler экземпляр передается в LibgdxGestureDetector экземпляра. Этот объект будет накапливать «сырые» входы и преобразовывать их в «жесты» более высокого уровня. Чтобы получить исходные входы, он должен быть установлен там, где к нему будут доставлены исходные входы. Самый простой способ установить его через Gdx.input.setInputProcessor, но вы также можете установить его с помощью InputMultiplexer (но это не стоит вдаваться сюда).

+0

Итак, Gdx.input.setInputProcessor (новый GestureDetector (новый GestureHandler()), устанавливает входные данные, но затем как я могу получить доступ к этим жестам, потому что все методы просто возвращают логическое значение, и я хочу, например, paramators: public boolean longPress (float x, float y) Мне нужны переменные x и y – Bevilacqua

+0

Поместите свой код, который хочет получить эти значения внутри обратного вызова. Возможно, ваш код может быть структурирован несколько иначе, чтобы обрабатывать входные «события», подобные этому (против «опроса» «архитектура») –

+0

Вы имеете в виду внутри класса GestureHandler? EX.longPress (float x, float y) {x = 0} – Bevilacqua

Смежные вопросы