XNA 4.0 Game Development by Example Beginner's Guide(Visual Basic Edition)
上QQ阅读APP看书,第一时间看更新

Time for action – updating Game1 to update animated pieces

  1. Modify the Update() method of the Game1 class by replacing the current case statement for the GameState.Playing state with the following:
    Case GameStates.Playing
        timeSinceLastInput +=
          (CSng(gameTime.ElapsedGameTime.TotalSeconds))
    
        If _gameBoard.ArePiecesAnimating() Then
            _gameBoard.UpdateAnimatedPieces()
        Else
            _gameBoard.ResetWater()
            Dim y As Integer
            For y = 0 To GameBoard.GameBoardHeight
                CheckScoringChain(_gameBoard.GetWaterChain(y))
            Next
            _gameBoard.GenerateNewPieces(True)
            If (timeSinceLastInput >= MinTimeSinceLastInput) Then
                HandleMouseInput(Mouse.GetState())
            End If
        End If

What just happened?

This method is very similar to its previous incarnation. In this instance, we check to see if there are outstanding animated pieces to process. If there are, then UpdateAnimatedPieces() will run. If no animated pieces currently exist, the previous behavior of the GameStates.Playing case is executed.

Drawing animated pieces

Our animated pieces are almost completed. In fact, they all function right now, but you cannot see them because we have not yet updated Draw() to take them into account.