- XNA 4.0 Game Development by Example Beginner's Guide(Visual Basic Edition)
- Kurt Jaegers
- 258字
- 2021-08-20 15:50:41
Time for action – handling mouse input
- Add the
HandleMouseInput()
helper method to theGame1
class:Private Sub HandleMouseInput(mouseInfo As MouseState) Dim x, y As Integer x = mouseInfo.X - CInt(gameBoardDisplayOrigin.X) y = mouseInfo.Y - CInt(gameBoardDisplayOrigin.Y) x = x \ GamePiece.PieceWidth y = y \ GamePiece.PieceHeight If (x >= 0) And (x <= GameBoard.GameBoardWidth) And (y >= 0) And (y <= GameBoard.GameBoardHeight) Then If mouseInfo.LeftButton = ButtonState.Pressed Then _gameBoard.RotatePiece(x, y, False) timeSinceLastInput = 0 End If If mouseInfo.RightButton = ButtonState.Pressed Then _gameBoard.RotatePiece(x, y, True) timeSinceLastInput = 0 End If End If End Sub
What just happened?
The MouseState
class reports the X
and Y
position of the mouse relative to the upper-left corner of the window. What we really need to know is what square on the game board the mouse was over.
We break the mouse position into X
and Y
components and subtract the corresponding parts of gameBoardDisplayOrigin
from them. Next, we use the Integer Division operator (\
) to divide the result by the size of a game board square.
If the resulting X
and Y
locations fall within the game board, the left and right mouse buttons are checked. If the left button is pressed, the piece is rotated counter clockwise. The right button rotates the piece clockwise. In either case, the input delay timer is reset to 0
, since input was just processed.
Letting the player play!
Only one more section to go and you can begin playing Flood Control. We need to code the Update()
method to tie together all of the game logic we have created so far.
- GitHub Essentials
- LibGDX Game Development Essentials
- 信息系統與數據科學
- 正則表達式必知必會
- 計算機信息技術基礎實驗與習題
- Learning Spring Boot
- Access 2016數據庫技術及應用
- 大數據時代下的智能轉型進程精選(套裝共10冊)
- 3D計算機視覺:原理、算法及應用
- INSTANT Cytoscape Complex Network Analysis How-to
- 數字媒體交互設計(初級):Web產品交互設計方法與案例
- SQL優化最佳實踐:構建高效率Oracle數據庫的方法與技巧
- Python數據分析與數據化運營
- 活用數據:驅動業務的數據分析實戰
- 數據庫與數據處理:Access 2010實現