2
我知道如何檢測在libgdx中刷卡,但我有一個問題,當我滑動到某個方向,順便說一句我使用GestureListener。如何檢測Libgdx中的滑動方向?
if(velocityX > 0) {
System.out.println("right");
}else if(velocityY > 0 && velocityX > 0){
System.out.println("down");
}else if(velocityY < 0){
System.out.println("up");
}
基本上發生了什麼是當我向上或向下滑動時它有時打印輸出「正確」。我想要發生的是檢測指針在哪個方向上,因爲如果你使用velocityX和velocityY,那麼你可以對角滑動,它會檢測到兩個向上和向右或向下的方向。在我的情況下,如果用戶對角滑動,它應該只被檢測爲向上或向下的手勢,並且不應該包括左右滑動。
更新:
if(Math.abs(velocityY) > Math.abs(velocityX)){
if(velocityY > 0)
System.out.println("down");
else if(velocityY < 0)
System.out.println("up");
}else if(Math.abs(velocityX) > Math.abs(velocityY))
if(velocityX > 0)
System.out.println("right");
就基本打印出比其他方向
您需要在第一個條件中檢查'velocityY'。順便說一句,在'else if'中'&& velocityX> 0'總是錯誤的 - 如果它是真的,它將與第一個條件相匹配。 –
@Andy Turner - 什麼是.abs()方法?因爲我試過了,它給了我相同的值,例如:velocityY和Math.abs(velocityY)具有相同的值。 –
[Javadoc](https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#abs(double)):它返回絕對值(x如果x> = 0; -x如果x <0)。 –