【问题标题】:Android Studio - ACTION_POINTER_UP not working as expectedAndroid Studio - ACTION_POINTER_UP 未按预期工作
【发布时间】:2015-12-24 19:50:02
【问题描述】:

我正在制作一个 2D 游戏。

我有 1 号球和 2 号球。我用#1 手指点击并按住#1 球,然后用#2 手指点击并按住#2 球。只要我一直按住那两个手指,两个球就会悬浮在空中。

当我放开手指 #1 时,为什么两个球都会掉下来?我检查了 System.out.println(),它记录了每当我松开一根手指时,第二根手指也被记录了为“ACTION_POINTER_UP”,并且“ACTION_UP”直到我松开手指 #2 才注册(为时已晚,球 #2 已经掉了)

代码:i 和 i2 是带有 2 个 for 循环的迭代器。

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();
     };
}

【问题讨论】:

    标签: android input


    【解决方案1】:

    正确的方法是使用正确的指针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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-25
      • 1970-01-01
      • 2018-02-08
      • 2016-10-14
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多