2016-08-14 21 views
0

我正在制作一款游戏,只需轻轻一滑就可以完成不同的事情。我的问题是,当我在屏幕上滑动时,touchDown()方法也被触发。如何在不触发justTouched()的情况下检测Libgdx中的滑动?

进出口延长GestureAdapter:

@Override 
    public boolean touchDown(float x, float y, int pointer, int button) { 
     //move when screen is touched 
     if(life == 1 && overlaps == false) { 
      timeState = 0; 
      velocity.y = -120; 
      velocity.x = 100; 
     } 
     return super.touchDown(x, y, pointer, button); 
    } 

    @Override 
    public boolean fling(float velocityX, float velocityY, int button) { 
     if(velocityX > 10) 
      //do something 
     return super.fling(velocityX, velocityY, button); 
    } 

回答

2

则不应使用只是触及在这种情况下,因为当玩家触摸第一次你不能知道将它只需轻触或滑动。

必须使用justtouched触摸起来的方法是这样

  1. 当玩家justtouched保存触摸的坐标。
  2. 当玩家触摸时检查坐标。
  3. 如果这2点之间的距离小于50像素(或者你想设置的限制),那么你可以假设它只是被刷新,否则它的刷卡,你可以做关于刷卡的计算。
+0

谢谢,但我只是实现了JestureListener,它有一个tap()方法,它可以解决fling方法之间的问题。 –

相关问题