2013-06-03 5 views
-1

J'ai deux rectangle A et B. Ce que je dois faire est, quand mon premier rectangle (A) est pressé, mon deuxième rectangle (B) ne pourrait pas être cliqué pendant 3 secondes et vice -versa. En outre, si l'un quelconque du rectangle est pressé, alors un autre clic n'est possible que lorsque l'utilisateur touche l'écran. , c'est-à-dire que les deux rectangles ne doivent pas pouvoir être cliqués avec une seule touche.Détection Multitouch sur le rectangle dans libgdx

que je fais comme suit:

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 
      } 

et tirage au sort()

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

Ce n'est pas clair ce que vous voulez ici? À quoi voulez-vous de l'aide exactement? –

Répondre

0

Prenez deux variables pour les temps de balayage pour dire deux rectangles.

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 
      } 

Essayez ceci. Cela peut fonctionner.

Questions connexes