2016-01-25 2 views
0

Я относительно новичок в LibGDX и столкнулся с какой-то баггией ситуацией. Я создаю 2D-игру и хочу, чтобы мои звуковые эффекты включались и выключались, когда я нажимаю на прямоугольник.LibGDX - событие отслеживания дорожек при касании

private boolean soundOn = true; 
private Rectangle soundRect; 
private Vector2 touchPoint; 

public Constructor(){ 
    soundRect = new Rectangle(); 
    touchPoint = new Vector2(0, 0); 
} 

public void update(float delta){  
     if (Gdx.input.isTouched()) { 
      touchPoint = new Vector2(Gdx.input.getX(), Gdx.input.getY()); 
      soundRect = new Rectangle(83, 0, 78, 63); 
      if (soundRect.contains(touchPoint)) { 
       soundOn = false; 
      } 
     } 
} 

Я также пробовал этот метод, но он тоже не работает.

if (Gdx.input.isTouched()) { 
     touchPoint.set(Gdx.input.getX(), Gdx.input.getY()); 

     if ((touchPoint.x >= soundRect.x) && 

       (touchPoint.y >= soundRect.y) && 
       (touchPoint.x <= soundRect.x + soundRect.width)&&   (touchPoint.y <= soundRect.y + soundRect.height)) { 
        Gdx.app.log("sound", "toggles"); 
        soundOn = false; 
       } 
    } 

Я знаю, что код не закончен, он должен быть в состоянии переключиться обратно верно, но сейчас он даже не переключиться на ложь;

+0

Насколько это возможно, вы забыли закончить вопрос в нижней части? Поскольку он заканчивается на ';'. – Smar

ответ

0

вы можете использовать реализовать класс InputProcessor и зарегистрировать его через Gdx.input.setInputProcessor()

Или вы должны отслеживать движение крана с помощью GestureAdapter

Gdx.input.setInputProcessor(new GestureDetector(new GestureAdapter(){ 
     @Override 
     public boolean tap(float x, float y, int count, int button) { 

      //here you can write code for touch event. 
       return true; 
     } 

    })); 

эти строки должны присутствовать в конструкторе или шоу-метода.

+1

oh, так что, по-видимому, я совершенно тупой, проблема в том, что у меня был целый класс, реализующий InputProcessor, но я вообще этого не использовал и не ожидал, что это вызовет такую ​​ошибку ... НО. Я тоже пробовал это и отлично работает, спасибо, что показал мне этот новый метод! –

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