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); } } } }
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; } }