Example #1
0
 @Override
 protected void onDraw(Canvas canvas) {
   super.onDraw(canvas);
   canvas.save();
   int itemWidth = getWidth() / targetNum;
   int itemHeight = getHeight() / (showdesc ? 2 : 1);
   ArrayList<CirclePoint> circlePoints = new ArrayList<>();
   for (int i = 0; i < targetNum; i++) {
     CirclePoint circlePoint = new CirclePoint();
     circlePoint.cx = (itemWidth / 2 + i * itemWidth);
     circlePoint.cy = itemHeight / 2;
     circlePoint.radius = itemHeight / 5;
     circlePoints.add(circlePoint);
   }
   for (int i = 0; i < targetNum; i++) {
     CirclePoint circlePoint1 = circlePoints.get(i);
     if (i == targetNum - 1) {
       drawCircle(canvas, circlePoint1, i);
       drawText(canvas, String.valueOf(1 + i), circlePoint1);
       drawDesc(canvas, circlePoint1, i, itemHeight);
       break;
     }
     CirclePoint circlePoint2 = circlePoints.get(i + 1);
     canvas.drawLine(
         circlePoint1.cx,
         circlePoint1.cy,
         circlePoint2.cx,
         circlePoint2.cy,
         i <= currentStep - 2 ? linePickedPaint : lineUnPickPaint);
     drawCircle(canvas, circlePoint1, i);
     drawText(canvas, String.valueOf(1 + i), circlePoint1);
     drawDesc(canvas, circlePoint1, i, itemHeight);
   }
   canvas.restore();
 }
  public void drawRedraw(Graphics2D graphics) {

    if (running) {

      this.randomPoint.drawPoint(graphics);

      if (this.snake1.isWithinLimits() && this.snake1.canPlay()) {

        this.snake1.updateMovement();
        this.snake1.drawPoints(graphics);

        if (this.snake1.interact(randomPoint)) {
          randomPoint.setCenter(Point.randomPoint(1, 49, 1, 49));
        }

        this.snake1.crashWithOther(this.snake2.getPointList());

      } else {
        this.snake1.setCanPlay(false);
        this.snake1.setColorAll(graphics, Color.RED);
        // Write Game Over Screen
      }

      if (this.snake2.isWithinLimits() && this.snake2.canPlay()) {

        this.snake2.updateMovement();
        this.snake2.drawPoints(graphics);

        if (this.snake2.interact(randomPoint)) {
          randomPoint.setCenter(Point.randomPoint(1, 49, 1, 49));
        }

        this.snake2.crashWithOther(this.snake1.getPointList());

      } else {
        this.snake2.setCanPlay(false);
        this.snake2.setColorAll(graphics, Color.BLUE);
        // Write Game Over Screen
      }

      if (!this.snake1.canPlay() && !this.snake2.canPlay()) {
        this.running = false;
      }

    } else {

      // graphics.

    }
  }
  public static Direction getAdjacentPoint(CirclePoint point1, CirclePoint secondPoint) {

    if (secondPoint.getCenter().getX() > point1.getCenter().getX()) {
      return Direction.LEFT;
    } else if (secondPoint.getCenter().getX() < point1.getCenter().getX()) {
      return Direction.RIGHT;
    } else if (secondPoint.getCenter().getY() < point1.getCenter().getY()) {
      return Direction.DOWN;
    } else {
      return Direction.UP;
    }
  }