Ich bin ein Student, der eine Air-Hockey-Android-Spiele zu entwickeln. Ich habe ein Problem mit Multi-Touch zu verstehen. Ich lerne gerade über ACTION_DOWN, ACTION_POINTER_DOWN etc.identifiziert Multi-Touch-Zeiger in action_move
aber nach Problem ist bei ACTION_MOVE. Ich erstelle 2 Sprites für 2 Spieler. Das erste Sprite bewegt sich dahin, wo mein 1. Finger hingeht, aber mein 2. Sprite bewegt sich nicht dort, wo sich mein 2. Finger bewegt.
meine Frage ist, wie ich identifizieren möchte, welcher Finger bewegt sich in ACTION_MOVE? Ich habe versucht, getPointerId (Index) zu verwenden, aber ich verstehe ich nicht, wie es verwenden, da der Index ändert sich, wenn der erste Finger den Bildschirm
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());
}
}
} verlassen