2014-12-06 102 views
-1

我做了一个非常简单的游戏,并开始制作每个菜单。连续会有3个菜单 - 主菜单 - 播放器选择菜单 - 游戏模式菜单,但我面临的问题是增加触摸之间的延迟。我的代码使用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. 集Gdx.input.setInputProcessor()到屏幕(在秀()创建()或方法的时候,屏幕设置名称叫))
  3. 覆盖润色(
  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; 
    

    }