Exemplo n.º 1
0
 public int bottom() {
   if (active) {
     return posY * cont.getSquareSize() + cont.getSquareSize() * sizeY;
   } else {
     return -1;
   }
 }
Exemplo n.º 2
0
 public int right() {
   if (active) {
     return posX * cont.getSquareSize() + cont.getSquareSize() * sizeX;
   } else {
     return -1;
   }
 }
Exemplo n.º 3
0
 public int top() {
   if (active) {
     return posY * cont.getSquareSize();
   } else {
     return -1;
   }
 }
Exemplo n.º 4
0
 public int left() {
   if (active) {
     return posX * cont.getSquareSize();
   } else {
     return -1;
   }
 }
Exemplo n.º 5
0
  /**
   * Called when the left mouse button has been clicked (pressed + released)
   *
   * @param x X position of the mouse pointer
   * @param y Y position of the mouse pointer
   */
  public void handleLeftMouseClicked(int x, int y) {
    BlockContainerInterface cont = null;
    PipeBlock[] blocks = null;
    if (x >= contAllowed.getDrawingPositionX(0)
        && x
            <= (contAllowed.getDrawingPositionX(contAllowed.getSizeX() - 1)
                + contAllowed.getSquareSize())
        && y >= contAllowed.getDrawingPositionY(0)
        && y
            <= (contAllowed.getDrawingPositionY(contAllowed.getSizeY() - 1)
                + contAllowed.getSquareSize())) {

      cont = contAllowed;
      selectedAllowed = true;
      blocks = blocksAllowed;
    } else if (x >= contNotAllowed.getDrawingPositionX(0)
        && x
            <= (contNotAllowed.getDrawingPositionX(contNotAllowed.getSizeX() - 1)
                + contNotAllowed.getSquareSize())
        && y >= contNotAllowed.getDrawingPositionY(0)
        && y
            <= (contNotAllowed.getDrawingPositionY(contNotAllowed.getSizeY() - 1)
                + contNotAllowed.getSquareSize())) {

      cont = contNotAllowed;
      selectedAllowed = false;
      blocks = blocksNotAllowed;
    } else {
      return;
    }

    int blockPosX = (x - cont.getOffsetX()) / blockSize;
    int blockPosY = (y - cont.getOffsetY()) / blockSize;
    selPosX = blockPosX;
    selPosY = blockPosY;
    selectedBlock = null;
    for (int i = 0; i < blocks.length; i++) {
      if (blockPosX == blocks[i].getPosX() && blockPosY == blocks[i].getPosY()) {
        selectedBlock = blocks[i];
        break;
      }
    }
  }
Exemplo n.º 6
0
  /** Draw all the game graphics */
  public void draw() {
    Graphics g = environment.getScreenHandler().getCurrentGraphics();
    g.clearRect(
        0,
        0,
        environment.getScreenHandler().getWidth(),
        environment.getScreenHandler().getHeight());
    int gameSizeX = (contAllowed.getSizeX() + contNotAllowed.getSizeX() + 3) * blockSize + 2;
    int gameSizeY = contAllowed.getSizeY() * blockSize + 2;
    g.setColor(Color.white);
    g.drawString(
        "Allowed:", contAllowed.getDrawingPositionX(0), contAllowed.getDrawingPositionY(0) - 3);
    g.drawString(
        "Not allowed:",
        contNotAllowed.getDrawingPositionX(0),
        contNotAllowed.getDrawingPositionY(0) - 3);
    g.setColor(Color.blue);
    g.drawRect(
        contAllowed.getDrawingPositionX(0),
        contAllowed.getDrawingPositionY(0),
        contAllowed.getSizeX() * contAllowed.getSquareSize(),
        contAllowed.getSizeY() * contAllowed.getSquareSize());
    g.drawRect(
        contNotAllowed.getDrawingPositionX(0),
        contNotAllowed.getDrawingPositionY(0),
        contNotAllowed.getSizeX() * contNotAllowed.getSquareSize(),
        contNotAllowed.getSizeY() * contNotAllowed.getSquareSize());

    if (blocksAllowed != null) {
      for (int i = 0; i < blocksAllowed.length; i++) {
        blocksAllowed[i].draw(g);
      }
    }
    if (blocksNotAllowed != null) {
      for (int i = 0; i < blocksNotAllowed.length; i++) {
        blocksNotAllowed[i].draw(g);
      }
    }

    if (selectedBlock != null) {
      g.setColor(Color.white);
      BlockContainerInterface cont;
      if (selectedAllowed) {
        cont = contAllowed;
      } else {
        cont = contNotAllowed;
      }
      g.drawRect(
          selectedBlock.getMovingDrawingPosX(),
          selectedBlock.getMovingDrawingPosY(),
          cont.getSquareSize(),
          cont.getSquareSize());
    }

    g.setColor(Color.white);
    int rightColumnX =
        contNotAllowed.getDrawingPositionX(0) + contNotAllowed.getSizeX() * blockSize + 10;
    g.drawString("Number of empty blocks:", rightColumnX, 100 + 15);
    g.drawString("Number of start blocks:", rightColumnX, 100 + 40);
    g.drawString("Initial time until water:", rightColumnX, 100 + 65);
    g.drawString("Initial water speed:", rightColumnX, 100 + 90);
    g.drawString("Initial blocks to fill:", rightColumnX, 100 + 115);
    rightColumnX = offsetX + gameSizeX + 20;
    g.setColor(Color.red);
    g.drawString("by Erland Isaksson", rightColumnX, offsetY + gameSizeY);
    environment.getScreenHandler().paintComponents(g);
  }