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

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.

主站蜘蛛池模板: 固始县| 玉林市| 通化县| 额济纳旗| 鱼台县| 清丰县| 彭泽县| 莱芜市| 于田县| 乌拉特前旗| 民勤县| 星子县| 邹城市| 句容市| 日喀则市| 镇宁| 台中县| 敖汉旗| 台北县| 葫芦岛市| 格尔木市| 万盛区| 宝山区| 双峰县| 疏勒县| 阜康市| 怀远县| 盐亭县| 林西县| 岐山县| 临桂县| 庐江县| 荥阳市| 五指山市| 广西| 婺源县| 石林| 民丰县| 峨眉山市| 彭水| 南京市|