2016-08-14 2 views
0

Ich mache ein Spiel, wo Wischen und JustTouched verschiedene Dinge tun. Mein Problem ist, dass wenn ich auf dem Bildschirm streiche, offensichtlich auch die touchDown() Methode ausgelöst wird.Wie kann man in Libgdx wischen, ohne justTouched() auszulösen?

Im erstreckt 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); 
    } 

Antwort

2

Sie nicht nur in diesem Fall berührt verwenden sollte, weil, wenn der Spieler erste Mal berührt Sie kann nicht wissen, dass es berühren oder Swipe einfach werden.

Sie mit Touch-up-Methode wie diese justtouched speichern berührt Koordinaten

  1. , wenn der Spieler verwenden justtouched müssen.
  2. Kontrollieren Sie die Koordinaten, wenn der Spieler nachgebessert hat.
  3. Wenn der Abstand zwischen diesen 2 Punkten weniger als 50 Pixel (oder welche Grenze Sie setzen möchten), dann können Sie davon ausgehen, dass es nur überstrichen ist, sonst können Sie über Wischen Berechnungen durchführen.
+0

danke, aber ich habe gerade JestureListener implementiert, die eine tap() -Methode hat, die das Problem zwischen der Fling-Methode lösen. –

Verwandte Themen