2
私はlibgdxでスワイプを検出する方法を知っていますが、特定の方向にスワイプすると問題が発生します.btwでは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を使って斜めにスワイプすると、上下左右の2つの方向を検出するので、ポインタがどの方向に向いているかを検出することです。私の場合、ユーザーが斜めにスワイプする場合は、上下のジェスチャーとしてのみ検出され、左右のスワイプは含まれません。
更新:
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'では常にfalseです - もしそれが真であれば、最初の条件と一致していました。 –
@Andy Turner - .abs()メソッドとは何ですか?私はそれを試してみて、それは私に同じ値を与える、例えば:velocityYとMath.abs(velocityY)は同じ値を持っています。 –
[Javadoc](https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#abs(double)):絶対値を返します(x> = 0の場合はx、 x <0の場合は-x)。 –