Итак, у меня есть следующее тело для моего метода onFling():
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
try {
// Left swipe
if ( velocityX < -SWIPE_THRESHOLD_VELOCITY) {
if( velocityY < -SWIPE_THRESHOLD_VELOCITY) {
GameWindow.writeToOutput("northwest");
Log.d("Console","Wrote NW");
}
else
GameWindow.writeToOutput("west");
return true;
// Right swipe
} else if (velocityX > SWIPE_THRESHOLD_VELOCITY) {
if( velocityY < -SWIPE_THRESHOLD_VELOCITY) {
GameWindow.writeToOutput("northeast");
Log.d("Console","Wrote NE");
}
else
GameWindow.writeToOutput("east");
return true;
}
if ( velocityY > SWIPE_THRESHOLD_VELOCITY) {
GameWindow.writeToOutput("south");
return true;
}
if ( velocityY < -SWIPE_THRESHOLD_VELOCITY) {
GameWindow.writeToOutput("north");
return true;
}
} catch (Exception e) {
Log.e("YourActivity", "Error on gestures");
}
return false;
}
Моя проблема заключалась в том, что я сделаю «бросок» вверх влево, но вместо этого скорости внезапно отобразятся в логарифме, который я сделал «бросок» в противоположном направлении. Может ли это быть проблемой эмулятора, или мой код не точно измеряет направление моего жеста?