上QQ阅读APP看书,第一时间看更新
Time for action – falling pieces
- Add a new class to the Flood Control project called
FallingPiece
. - Add the
Inherits
line after the class declaration as follows:Inherits GamePiece
- Add the following declarations to the
FallingPiece
class:Public VerticalOffset As Integer Public Shared FallRate As Integer = 5
- Add a constructor for the
FallingPiece
class:Public Sub New(type As String, verticalOffset As Integer) MyBase.New(type) Me.VerticalOffset = verticalOffset End Sub
- Add a method to update the piece:
Public Sub UpdatePiece() VerticalOffset = CInt(MathHelper.Max(0, VerticalOffset - FallRate)) End Sub
What just happened?
Simpler than a RotatingPiece
, a FallingPiece
is also a child of the GamePiece
class. A FallingPiece
has an offset (how high above its final destination it is currently located) and a falling speed (the number of pixels it will move per update).
As with a RotatingPiece
, the constructor passes the type parameter to its base class constructor, and uses the verticalOffset
parameter to set the VerticalOffset
member. Again, we use the Me.
notation to differentiate the two identifiers of the same name.
Lastly, the UpdatePiece()
method subtracts FallRate
from VerticalOffset
, again using the MathHelper.Max()
method to ensure that the offset does not fall below zero.