Android Studio-操作指针未按预期工作

Android Studio-操作指针未按预期工作,android,input,Android,Input,我正在做一个2D游戏 我有球1和球2。我用手指1轻拍并握住球1,然后用手指2轻拍并握住球2。只要我一直按住那两个手指,两个球都会悬浮在空中 当我松开手指1时,为什么两个球都会掉下来?我检查了System.out.println(),它记录了每当我松开手指1时,第二个手指也会被记录为“动作指针向上”,并且在我松开手指2之前,“动作指针向上”不会注册(为时已晚,球2已经掉了) 代码:i和i2是带2 for循环的Iterator if(event.getActionMasked()==event.AC

我正在做一个2D游戏

我有球1和球2。我用手指1轻拍并握住球1,然后用手指2轻拍并握住球2。只要我一直按住那两个手指,两个球都会悬浮在空中

当我松开手指1时,为什么两个球都会掉下来?我检查了System.out.println(),它记录了每当我松开手指1时,第二个手指也会被记录为“动作指针向上”,并且在我松开手指2之前,“动作指针向上”不会注册(为时已晚,球2已经掉了)

代码:i和i2是带2 for循环的Iterator

if(event.getActionMasked()==event.ACTION_POINTER_UP || event.getActionMasked()==event.ACTION_UP){
     if(arBalls.get(i2).getDragID()==event.getPointerId(i) && arBalls.get(i2).getDrag()){
         arBalls.get(i2).endDrag();
     };
}

正确的方法是使用正确的指针id

case MotionEvent.ACTION_POINTER_UP: {
    if(arBalls.get(i2).getDragID()==event.getPointerId(event.getActionIndex()) && arBalls.get(i2).getDrag()==true){
        arBalls.get(i2).endDrag();
    }
    break;
}
case MotionEvent.ACTION_UP: {
    if(arBalls.get(i2).getDragID() == event.getPointerId(event.getActionIndex()) && arBalls.get(i2).getDrag()==true){
        arBalls.get(i2).endDrag();
    }
    break;
}