Example #1
0
  public void drawBoardObjects(Canvas canvas) {

    for (int i = 0; i < rows; i++) {
      for (int j = 0; j < cols; j++) {

        // blocks
        if (boardStatus[i][j] == -1) {
          paint.setColor(Color.DKGRAY);

          canvas.drawRect(gridPoints[i][j], paint);
        }

        // colored grids
        if (boardStatus[i][j] > 0) {
          paint.setColor(ColorList.getColor(boardStatus[i][j], 0));
          paint.setAlpha(150);
          canvas.drawRect(gridPoints[i][j], paint);
        }

        // balls
        if (balls.containsKey(new Point(i, j)) && !isMoving) {
          paint.setColor(ColorList.getColor(balls.get(new Point(i, j)), 0));
          canvas.drawCircle(
              gridPoints[i][j].centerX(), gridPoints[i][j].centerY(), gridSize / 3, paint);
        }
      }
    }
  }
Example #2
0
  public void drawMovingObject(Canvas canvas) {
    int cx = 0, cy = 0;
    boolean flag = true;

    for (Map.Entry<Point, Point> entry : ballPosition.entrySet()) {

      Point key = entry.getKey();
      Point val = entry.getValue();

      if (canBallMove.get(key)) {

        if (trigger.equals("right")) {

          cx = val.x;
          if (cx + gridSize / 4 <= gridPoints[key.x][key.y + 1].centerX()) {
            cx = val.x + gridSize / 4;
            flag = false;
          } else {

            cx = gridPoints[key.x][key.y + 1].centerX();
          }

          cy = val.y;

        } else if (trigger.equals("left")) {

          cx = val.x;
          if (cx - gridSize / 4 >= gridPoints[key.x][key.y - 1].centerX()) {
            cx = val.x - gridSize / 4;
            flag = false;
          } else {

            cx = gridPoints[key.x][key.y - 1].centerX();
          }

          cy = val.y;

        } else if (trigger.equals("bottom")) {

          cy = val.y;
          if (cy + gridSize / 4 <= gridPoints[key.x + 1][key.y].centerY()) {
            cy = val.y + gridSize / 4;
            flag = false;
          } else {

            cy = gridPoints[key.x + 1][key.y].centerY();
          }

          cx = val.x;

        } else if (trigger.equals("top")) {

          cy = val.y;
          if (cy - gridSize / 4 >= gridPoints[key.x - 1][key.y].centerY()) {
            cy = val.y - gridSize / 4;
            flag = false;
          } else {

            cy = gridPoints[key.x - 1][key.y].centerY();
          }

          cx = val.x;
        }
      } else {

        cx = val.x;
        cy = val.y;
      }

      ballPosition.put(key, new Point(cx, cy));

      paint.reset();
      paint.setAntiAlias(true);
      paint.setColor(ColorList.getColor(balls.get(key), 0));
      canvas.drawCircle(cx, cy, gridSize / 3, paint);
    } // end of loop

    if (flag) {

      setNewBallPosition();
      rebuiltMap();

      isMoving = false;
    }
  }