Ich entwickle ein Spiel mit LibGDX und ich habe Probleme bei der Bestimmung einer fling
von einer pan
.Ermitteln einer Schleuder aus einer Pfanne in libgdx
Mein GestureListener
:
@Override
public boolean fling(float velocityX, float velocityY, int button) {
//if (velocityX > 1000f) {
// I can use this to exclude slow pans from the executing a fling
System.out.println("Flinged - velocityX: " + velocityX + ", button: " + button);
//}
return false;
}
@Override
public boolean pan(float x, float y, float deltaX, float deltaY) {
// but there doesn't seem to be a way to have this not fire on a fling
System.out.println("Panned - deltaX: " + deltaX);
return false;
}
@Override
public boolean panStop(float x, float y, int pointer, int button) {
System.out.println("Pan Stop - pointer: " + pointer + ", button: " + button);
return false;
}
Das Problem ist, dass, wenn beide pan
und fling
Feuer. Ich verstehe, dass eine fling
im Grunde eine schnelle pan
ist, aber ich muss in der Lage sein, zwischen den beiden Gesten zu bestimmen, damit ich jede separat behandeln kann.
Eine knappe Art zu fragen ist, wie kann ich einzigartige Aktionen für fling
und pan
bereitstellen?
technisch funktioniert das, aber scheint unmöglich, das "Gefühl" richtig zu machen. Ich kann zwischen Pan und Fling erkennen, aber ich habe schon eine Weile mit der langen Druckdauer gespielt und es scheint fast unmöglich, eine gute Zahl dafür zu bekommen. ~ 100ms (0.1s) schien beim Testen auf meinem Nexus 5 am besten zu funktionieren, aber es war nicht konsistent. Manchmal, was sich für mich wie eine Pfanne anfühlte (langsamer als ein Schlag/Schleudern), wurde nicht registriert und manchmal tat es auch. – Townsfolk