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

Time for action – initializing the game board

  1. Add a constructor to the GameBoard class:
    Public Sub New(pieceTexture As Texture2D, emptyArea As Rectangle)
      playingPieces = pieceTexture
      emptyPiece = emptyArea
      ClearBoard()
    End Sub
  2. Add the ClearBoard() helper method to the GameBoard class:
    Public Sub ClearBoard()
      Dim x, y As Integer
      For x = 0 To GameBoardWidth
        For y = 0 To GameBoardHeight
          boardSquares(x, y) = New GamePiece("Empty")
        Next
      Next
    End Sub

What just happened?

When a new instance of the GameBoard class is created, we store the texture and rectangle values that we will need for drawing, and the constructor calls the ClearBoard() helper method, which simply creates 80 empty game pieces and assigns them to each element in the array.

Tip

Helper methods

Why not simply put the two for loops that clear the board into the GameBoard constructor? Splitting work up into methods that accomplish a single purpose greatly helps to keep your code both readable and maintainable. Additionally, by splitting ClearBoard() out as its own method, we can call it separately from the constructor. When we add increasing difficulty levels in Chapter 3, Flood Control - Smoothing Out the Rough Edges, we will make use of this call when a new level starts.

Updating GamePieces

The boardSquares array in the GameBoard class is declared as a private member, meaning that code that uses the GameBoard will not have direct access to the pieces contained on the board.

In order for code in our Game1 class to interact with a GamePiece, we will need to create public methods in the GameBoard class that expose the pieces in boardSquares.

主站蜘蛛池模板: 延寿县| 图木舒克市| 光山县| 饶河县| 南京市| 会昌县| 赣榆县| 龙南县| 湖州市| 嘉义市| 深泽县| 诏安县| 错那县| 长岭县| 岢岚县| 湘乡市| 浦江县| 阜新| 贵定县| 大理市| 新密市| 博野县| 昌都县| 苏尼特右旗| 陆丰市| 莒南县| 洛浦县| 宁化县| 上饶县| 正宁县| 洞头县| 巴东县| 余庆县| 齐齐哈尔市| 张北县| 藁城市| 扬中市| 开阳县| 岳池县| 大安市| 阳东县|