私はエアホッケーのAndroidゲームを開発している学生です。マルチタッチの理解に問題があります。ACTION_DOWN、ACTION_POINTER_DOWNなどについて学びます。
しかし、問題はACTION_MOVEにあります。2人用に2つのスプライトを作成します。1つ目のスプライトは1つ目の指が移動する場所に移動しますが、2つ目のスプライトは2つ目の指が移動する場所に移動しません。
私の質問は、ACTION_MOVEでどの指が動いているかをどのように識別したいですか?getPointerId(index)を使おうとしましたが、人差し指が画面から離れると人差し指が変化するため、使い方がわかりません。
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
break;
}
case MotionEvent.ACTION_POINTER_DOWN: {
break;
}
case MotionEvent.ACTION_UP: {
break;
}
case MotionEvent.ACTION_POINTER_UP: {
break;
}
case MotionEvent.ACTION_MOVE: {
if((int)event.getPointerId(index) == 0){ //i know this IF statement is wrong, what should i do?
player1.setX((int)event.getX()); //player1 & player2 is a sprite object
player1.setY((int)event.getY());
}
if((int)event.getPointerId(index) == 1){
player1.setX((int)event.getX());
player1.setY((int)event.getY());
}
}
}