[LibGDX]按下按钮之间的延迟

时间:2014-12-06 02:21:30

标签: android menu libgdx touch delay

我制作了一个非常简单的游戏,并开始制作每个菜单。连续3个菜单 - 主菜单 - 播放器选择菜单 - 游戏模式菜单,但我面临的问题是在触摸之间添加延迟。我使用的代码Sprite用于按钮,并检测触摸点是否在边界矩形内。

像这样:

if(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);

    }
}

这适用于第一个菜单,但由于按钮在每个菜单上的位置完全相同,如果您将手指放在屏幕上,我会跳过所有菜单。

我不知道如何修改它以等到上一次触摸不再发生,然后继续扫描这个触摸。

任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

我强烈建议你将Scene2D用于与UI相关的东西,它不难实现或学习,而且很容易保留。

无论如何,如果你想继续这样做,你可以这样做:

  1. 让您的屏幕实现InputProcessor。
  2. 将Gdx.input.setInputProcessor()设置为该屏幕(在show()create()中或设置屏幕时调用的方法名称)
  3. 覆盖touchUp()
  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;
    

    }