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

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.

主站蜘蛛池模板: 长沙市| 建昌县| 镇康县| 吐鲁番市| 汝南县| 普宁市| 博乐市| 永福县| 赞皇县| 石门县| 万盛区| 江达县| 宁蒗| 七台河市| 贡觉县| 云龙县| 昭平县| 花莲县| 盐池县| 阜平县| 晴隆县| 浠水县| 望都县| 吴旗县| 内乡县| 五台县| 团风县| 寿阳县| 泽库县| 大悟县| 巨鹿县| 河东区| 秦安县| 东平县| 西城区| 东阿县| 日土县| 淳安县| 岚皋县| 京山县| 迁西县|