- XNA 4.0 Game Development by Example Beginner's Guide(Visual Basic Edition)
- Kurt Jaegers
- 276字
- 2021-08-20 15:50:39
Time for action – manipulating the GameBoard
- Add
public
methods to theGameBoard
class to interact withGamePieces
:Public Sub RotatePiece(x As Integer, y As Integer, clockwise As Boolean) boardSquares(x, y).RotatePiece(clockwise) End Sub Public Function GetSourceRect( x As Integer, y As Integer) As Rectangle Return boardSquares(x, y).GetSourceRectangle() End Function Public Function GetSquare(x As Integer, y As Integer) As String Return boardSquares(x, y).PieceType End Function Public Sub SetSquare(x As Integer, y As Integer, pieceType As String) boardSquares(x, y).SetPiece(pieceType) End Sub Public Function HasConnector(x As Integer, y As Integer, direction As String) As Boolean Return boardSquares(x, y).HasConnector(direction) End Function Public Sub RandomPiece(x As Integer, y As Integer) boardSquares(x, y).SetPiece(GamePiece.PieceTypes( rand.Next(0, GamePiece.MaxPlayablePieceIndex + 1))) End Sub
What just happened?
RotatePiece()
, GetSourceRect()
, GetSquare()
, SetSquare()
, and HasConnector()
methods simply locate the appropriate GamePiece
within the boardSquares
array and pass on the function request to the piece.
The RandomPiece()
method uses the rand
object to get a random value from the PieceTypes
array and assigns it to a GamePiece
. It is important to remember that with the Random.Next()
method overload used here, the second parameter is non-inclusive. In order to generate a random number from 0
through 5
, the second parameter needs to be 6
.
Filling in the gaps
Whenever the player completes a scoring chain, the pieces in that chain are removed from the board. Any pieces above them fall down into the vacated spots and new pieces are generated.
推薦閱讀
- Hands-On Data Structures and Algorithms with Rust
- Microsoft SQL Server企業級平臺管理實踐
- Oracle RAC 11g實戰指南
- R數據科學實戰:工具詳解與案例分析(鮮讀版)
- UDK iOS Game Development Beginner's Guide
- 企業級數據與AI項目成功之道
- LabVIEW 完全自學手冊
- 科研統計思維與方法:SPSS實戰
- IPython Interactive Computing and Visualization Cookbook(Second Edition)
- 爬蟲實戰:從數據到產品
- Web Services Testing with soapUI
- Spring MVC Beginner’s Guide
- 中國云存儲發展報告
- 大數據分析:R基礎及應用
- 一類智能優化算法的改進及應用研究