【发布时间】:2016-04-25 17:03:33
【问题描述】:
我知道如何检测 libgdx 中的滑动,但是当我向某个方向滑动时遇到问题,顺便说一句,我使用 GestureListener。
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。顺便说一句,就目前情况而言,&& velocityX > 0在else if中始终为假-如果为真,它将与第一个条件匹配。 -
@Andy Turner - 什么是 .abs() 方法?因为我试过了,它给了我相同的值,例如:velocityY 和 Math.abs(velocityY) 具有相同的值。
-
Javadoc:返回绝对值(x if x >= 0; -x if x