すべてのブロックを消せたときはクリア。また、ラケットでボールを打ち返すのに失敗したらゲームオーバーにします。
クリアした時、ゲームオーバーになったときは、それぞれメッセージを表示してタイマーイベントを無効化しましょう。
クリアできたかどうかの判断は、表示中のブロックの数が0になったことでわかります。
表示中のブロックの数を数える CountBricks() というファンクションプロシージャを作りましょう。
Public Function CountBricks()
Dim i, j, sum As Integer
Dim b As Label
sum = 0
For i = 0 To 9
For j = 0 To 5
b = brick(i, j)
If b.Visible Then
sum += 1
End If
Next
Next
Return sum
End Function
タイマーイベント内で残りのブロックの数を見て、0になってたらクリアにします。
また、ボールがラケットよりも下に行ったらゲームオーバーにします。
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
HitWall()
HitRacket()
HitBricks()
If CountBricks() = 0 Then
Timer1.Enabled = False
MsgBox("クリアしました!")
End If
If y > Racket.Top + Racket.Height Then
Timer1.Enabled = False
MsgBox("ゲームオーバー")
End If
x = x + dx
y = y + dy
Ball.Left = x
Ball.Top = y
End Sub