Java libgdx中矩形上的多点触摸检测

Java libgdx中矩形上的多点触摸检测,java,android,libgdx,Java,Android,Libgdx,我有两个矩形A和B。我要做的是,当我的第一个矩形(A)被按下时,我的第二个矩形(B)在3秒钟内不能点击,反之亦然。此外,如果按下任一矩形,则只有在用户触摸屏幕时,才能单击另一个矩形。 i、 e.两个矩形不应通过一次触摸就能点击 我的工作如下: boolean leftleftRectBool = false,rightRectBool = false; long scanningTime = System.currentTimeMillis()+3000;//in constructor c

我有两个矩形A和B。我要做的是,当我的第一个矩形(A)被按下时,我的第二个矩形(B)在3秒钟内不能点击,反之亦然。此外,如果按下任一矩形,则只有在用户触摸屏幕时,才能单击另一个矩形。 i、 e.两个矩形不应通过一次触摸就能点击

我的工作如下:

boolean leftleftRectBool = false,rightRectBool = false;
long scanningTime =  System.currentTimeMillis()+3000;//in constructor

camera.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
    if(Gdx.input.isTouched())
    {
        if (leftThumbRectangle.contains(touchPoint.x, touchPoint.y)) {
                    if (scanningTime > System.currentTimeMillis()) {
                leftRectBool = false;
                scanningTimeStart = true;
            } else {
                scanningTime = 0;
                scanningTimeStart = false;
                leftRectBool = true;
                   }

             }
if(rightThumbRectangle.contains(touchPoint.x, touchPoint.y)) {
                       if (scanningTime > System.currentTimeMillis()) {
                rightRectBool = false;
                scanningTimeStart = true;
            } else {
                scanningTime = 0;
                scanningTimeStart = false;
                rightRectBool = true;
                   }
}

else {

        scanningTime = System.currentTimeMillis() + 3000;
     }
           if(lefttRectBool && lefttRectBool)
             {
              // some thing happen
             }
和在draw()中


扫描时间取两个变量,即两个矩形

    boolean leftleftRectBool = false,rightRectBool = false;
long scanningTimeRight =  System.currentTimeMillis()+3000;
long scanningTimeLeft =  System.currentTimeMillis()+3000;

camera.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
    if(Gdx.input.isTouched())
    {
        if (leftThumbRectangle.contains(touchPoint.x, touchPoint.y)) {
                    if (scanningTime > System.currentTimeMillis()) {
                leftRectBool = false;
                scanningTimeStart = true;
            } else {
                scanningTimeRight = System.currentTimeMillis()+3000;
                scanningTimeStart = false;
                leftRectBool = true;
                   }

             }
if(rightThumbRectangle.contains(touchPoint.x, touchPoint.y)) {
                       if (scanningTime > System.currentTimeMillis()) {
                rightRectBool = false;
                scanningTimeStart = true;
            } else {
                scanningTimeLeft = System.currentTimeMillis()+3000;
                scanningTimeStart = false;
                rightRectBool = true;
                   }
}

else {

        scanningTimeRight = System.currentTimeMillis() + 3000;
        scanningTimeLeft = System.currentTimeMillis()+3000;
     }
           if(lefttRectBool && lefttRectBool)
             {
              // some thing happen
             }

试试这个。这可能有用。

不清楚您想要什么?你到底需要什么帮助?
    boolean leftleftRectBool = false,rightRectBool = false;
long scanningTimeRight =  System.currentTimeMillis()+3000;
long scanningTimeLeft =  System.currentTimeMillis()+3000;

camera.unproject(touchPoint.set(Gdx.input.getX(), Gdx.input.getY(), 0));
    if(Gdx.input.isTouched())
    {
        if (leftThumbRectangle.contains(touchPoint.x, touchPoint.y)) {
                    if (scanningTime > System.currentTimeMillis()) {
                leftRectBool = false;
                scanningTimeStart = true;
            } else {
                scanningTimeRight = System.currentTimeMillis()+3000;
                scanningTimeStart = false;
                leftRectBool = true;
                   }

             }
if(rightThumbRectangle.contains(touchPoint.x, touchPoint.y)) {
                       if (scanningTime > System.currentTimeMillis()) {
                rightRectBool = false;
                scanningTimeStart = true;
            } else {
                scanningTimeLeft = System.currentTimeMillis()+3000;
                scanningTimeStart = false;
                rightRectBool = true;
                   }
}

else {

        scanningTimeRight = System.currentTimeMillis() + 3000;
        scanningTimeLeft = System.currentTimeMillis()+3000;
     }
           if(lefttRectBool && lefttRectBool)
             {
              // some thing happen
             }