2015-04-17 3 views
2

Как вы обнаруживаете двойное касание? Я делаю игру похожей на bejeweled, и хотел бы обнаружить это. В моей текущей реализации я смог получить эффект салфетки. Я также хотел бы обнаружить эффект двойного касания для другой функциональности в игре.Как вы обнаруживаете двойное касание?

КОД:

@Override 
public boolean onTouch(MotionEvent e, int scaledX, int scaledY) { 

    if (e.getAction() == MotionEvent.ACTION_DOWN && board.touchBoard(scaledX, scaledY)) { 
     recentTouchY = scaledY; 
     recentTouchX = scaledX; 

     board.whichCell(scaledX,scaledY); 

     touchedCell = board.whichCellTouched(scaledX,scaledY); 
     //board.swapClearShape(touchedCell.getOffX(),touchedCell.getOffY()); 
    } else if (e.getAction() == MotionEvent.ACTION_UP) { //NEED TO ADD IF TOUCH BOARD AREA 

     //swipe event 
     if (scaledX - recentTouchX < -25) { 

      System.out.println("SWAPPED LEFT"); 
      Assets.playSound(Assets.swapSound); 
      board.setSwapLeft(true); 

     } 
     else if (scaledX - recentTouchX > 25) { 
      System.out.println("SWAPPED RIGHT"); 
      Assets.playSound(Assets.swapSound); 
      board.setSwapRight(true); 

     } 
     //swap down 
     else if(scaledY- recentTouchY > 25){ 
      System.out.println("SWAPPED DOWN"); 
      Assets.playSound(Assets.swapSound); 
      board.setSwapDown(true); 

     } 
     //swap up 
     else if(scaledY- recentTouchY < -25){ 
      System.out.println("SWAPPED UP"); 
      Assets.playSound(Assets.swapSound); 
      board.setSwapUp(true); 

     } 

    } 
    return true; 
} 

Я не ищу двумя пальцами, а одно касание с последующим и другим сенсорным затем перетащить

+1

есть очень хороший ответ на эту проблему http://stackoverflow.com/a/14873942/1061944 –

+0

возможно дубликат [Как реализовать «Two Finger Drag» жест на Android?] (Http://stackoverflow.com/questions/14818530/how-to-implement-a-two-finger-drag-gesture-on-android) –

+1

Я не искал двумя пальцами, а затем одним касанием и другим касанием, затем перетаскиванием. @Syeda Zunairah – jssmkp

ответ

1

Вы можете использовать GestureDetector.OnDoubleTapListener для обнаружения двойного крана жест и вызвать флаг , Затем на вашем onTouch (MotionEvent.ACTION_MOVE) выполните логику перетаскивания.

Если вы используете метод onDoubleTapEvent (MotionEvent e), вы сможете обнаруживать события между жестом двойного касания и запускать флаг перед вторым событием ACTION_UP.

Вот пример двойной реализации крана слушающего: http://developer.android.com/training/gestures/detector.html

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