2014-12-06 2 views
-1

Im делает очень простую игру и начал создавать каждое меню. Там будет 3 меню подряд - Главное меню - Меню выбора плейера - Меню Gamemode, но проблема, с которой я столкнулся, добавляет задержку между касаниями. в коде я использую Sprites для кнопок и обнаруживает, находится ли точка касания в ограничивающем прямоугольнике.[LibGDX] Задержка между нажатиями кнопок

Как так: если (Gdx.input.isTouched()) {

   cam.unproject(PlayerMenuTP.set(Gdx.input.getX(), Gdx.input.getY(), 0)); 
       if(Sprites[1].getBoundingRectangle().contains(PlayerMenuTP.x, PlayerMenuTP.y)){ 

        Game.ChangeScreen(2); 

       }} 

Это работает для первого меню, но так как кнопки находятся в том же положении на каждом меню, если держать вас пальцем на экране я пропускаю все меню.

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

Любая помощь будет оценена по достоинству.

Благодаря

ответ

0

Я настоятельно рекомендую вам использовать Scene2D для связанных UI вещей, это не сложно реализовать или учиться, и его очень легко его поддерживать.

В любом случае, если вы хотите, чтобы продолжать идти таким образом, вы можете сделать это:

  1. сделать ваши экраны реализовать InputProcessor.
  2. Set Gdx.input.setInputProcessor() на этом экране (в шоу() создать() или имя метода вызывается, когда экран установлен)
  3. Override подкраски()
  4. Заменить код с

    @Override public boolean touchUp (int screenX, int screenY, int pointer, int button) { 
        cam.unproject(PlayerMenuTP.set(screenX, screenY, 0)); 
        if (Sprites[1].getBoundingRectangle().contains(PlayerMenuTP.x, PlayerMenuTP.y)){ 
         Game.ChangeScreen(2); 
        } 
        return true; 
    

    }

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