我知道如何在 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");
它基本上打印出大于另一个方向的方向
最佳答案
您可以做的第一件事是确定运动是“更左右”还是“更上下”:
if (Math.abs(velocityX) > Math.abs(velocityY)) {
// More left-right.
} else {
// More up-down.
}
然后,您选择它是“更多”方向中的哪一个,例如在条件中的“更多左右” block 中:
if (velocityX >= 0) {
System.out.println("Right");
} else {
System.out.println("Left");
}
对于 velocityY
也是如此。
请注意,这基本上将方向空间分为 4 个象限,分别在 vy = vx
和 vy = -vx
行处进行划分。
关于java - 如何检测 Libgdx 中的滑动方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36835183/