官术网_书友最值得收藏!

Time for action – water in the pipes

  1. Add a method to the GameBoard class to clear the water marker from all pieces:
    Public Sub ResetWater()
      Dim x, y As Integer
      For x = 0 To GameBoardWidth
        For y = 0 To GameBoardHeight
          boardSquares(x, y).RemoveSufix("W")
        Next
      Next
    End Sub
  2. Add a method to the GameBoard class to fill an individual piece with water:
    Public Sub FillPiece(x As Integer, y As Integer)
      boardSquares(x, y).AddSuffix("W")
    End Sub

What just happened?

The ResetWater() method simply loops through each item in the boardSquares array and removes the W suffix from the GamePiece. Similarly, to fill a piece with water, the FillPiece() method adds the W suffix to the GamePiece. Recall that by having a W suffix, the GetSourceRect() method of GamePiece shifts the source rectangle one tile to the right on the sprite sheet, returning the image for a pipe filled with water, instead of an empty pipe.

Propagating water

Now that we can fill individual pipes with water, we can write the logic to determine which pipes should be filled depending on their orientation.

主站蜘蛛池模板: 临湘市| 罗田县| 济宁市| 出国| 齐齐哈尔市| 勐海县| 达孜县| 厦门市| 涟水县| 巴彦县| 丰城市| 那坡县| 莲花县| 禄劝| 故城县| 拜城县| 安国市| 房产| 阿城市| 皋兰县| 自贡市| 怀远县| 长春市| 怀来县| 崇文区| 兴文县| 和林格尔县| 无锡市| 遂宁市| 德州市| 萨迦县| 梅河口市| 枣阳市| 赤城县| 永丰县| 台东市| 土默特右旗| 封丘县| 竹北市| 江西省| 射阳县|