2013-06-03 2 views
-1

У меня есть два прямоугольника A и B. Что мне нужно сделать: Когда мой первый прямоугольник (A) нажат, мой второй прямоугольник (B) не будет нажат в течение 3 секунд, -versa. Кроме того, если какой-либо из прямоугольников нажат, то другой щелчок доступен только тогда, когда пользователь коснется экрана. т. Е. Оба прямоугольника не должны щелкнуть мышью одним касанием.Обнаружение Multitouch на прямоугольнике в libgdx

Я делаю следующим образом:

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 
      } 

и в розыгрыше()

if(lefttRectBool) 
{ 
//some thing haapens 
} 
else if(rightRectBool) 
{ 
//some things happen 
} 
+0

Непонятно, что вы хотите здесь? С чем именно вы хотите помочь? –

ответ

0

Возьмите две переменные для времени сканирования, т.е. для двух прямоугольников.

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 
      } 

Попробуйте это. Это может сработать.

Смежные вопросы