Ejemplo n.º 1
0
  // @Override public boolean dispatchTouchEvent (MotionEvent event) {
  public boolean gotTouchEvent(MotionEvent event) {

    super.onTouchEvent(event);
    int evcount = event.getPointerCount();
    if (evcount == 0) return true;

    int[] arr = new int[event.getPointerCount() * 3];

    for (int i = 0; i < event.getPointerCount(); i++) {

      arr[i * 3 + 0] = (int) event.getPointerId(i);
      arr[i * 3 + 1] = (int) event.getX(i);
      arr[i * 3 + 2] = (int) event.getY(i);
    }

    // System.out.printf("gaction: %d\n",event.getAction());
    switch (event.getAction() & MotionEvent.ACTION_MASK) {
      case MotionEvent.ACTION_DOWN:
        {
          GodotLib.touch(0, 0, evcount, arr);
          // System.out.printf("action down at: %f,%f\n", event.getX(),event.getY());
        }
        break;
      case MotionEvent.ACTION_MOVE:
        {
          GodotLib.touch(1, 0, evcount, arr);
          // for(int i=0;i<event.getPointerCount();i++) {
          //	System.out.printf("%d - moved to: %f,%f\n",i, event.getX(i),event.getY(i));
          // }
        }
        break;
      case MotionEvent.ACTION_POINTER_UP:
        {
          int pointer_idx = event.getActionIndex();
          GodotLib.touch(4, pointer_idx, evcount, arr);
          // System.out.printf("%d - s.up at: %f,%f\n",pointer_idx,
          // event.getX(pointer_idx),event.getY(pointer_idx));
        }
        break;
      case MotionEvent.ACTION_POINTER_DOWN:
        {
          int pointer_idx = event.getActionIndex();
          GodotLib.touch(3, pointer_idx, evcount, arr);
          // System.out.printf("%d - s.down at: %f,%f\n",pointer_idx,
          // event.getX(pointer_idx),event.getY(pointer_idx));
        }
        break;
      case MotionEvent.ACTION_CANCEL:
      case MotionEvent.ACTION_UP:
        {
          GodotLib.touch(2, 0, evcount, arr);
          // for(int i=0;i<event.getPointerCount();i++) {
          //	System.out.printf("%d - up! %f,%f\n",i, event.getX(i),event.getY(i));
          // }
        }
        break;
    }
    return true;
  }