示例#1
0
  private void mouseDown(MouseEvent e) {
    if (game == null) return;
    if (game.getGameState() != GameState.IN_PROGRESS) return;
    if (e.button == 1) {
      // check for drag event
      if (beginDrag(e)) {
        redraw();
        return;
      }

      // update arrow on left mouse click
      int x = e.x;
      int y = e.y;
      boolean del = true;
      for (Iterator i = squareLocations.iterator(); i.hasNext(); ) {
        Square s = (Square) i.next();
        Rectangle r = s.r;
        if (r.contains(x, y)) {
          int n = s.x;
          int m = s.y;
          del = false;
          if (arrow == null || n != arrow.x || m != arrow.y) {
            arrow = new Arrow(n, m, Orientation.HORIZONTAL);
          } else {
            arrow.flip();
          }
          redraw();
        }
      }
      if (del) {
        getLocalTileRack().shuffle();
      }
      resetInput(del);
      redraw();
    } else {
      // stop drag
      doDrop(e);

      // clear typed characters on right mouse click
      resetInput(true);
      redraw();
    }
  }