カテゴリー
Visual Basic

スコアを表示する

消したブロックの数をカウントして、その値をスコアとして表示するようにしましょう。

スコアを表示するためのLabelを画面の右上に配置します。そして、NameプロパティをScoreLabelとしておきます。

スコアをカウントするために、フォームに score 変数を追加します。

Public Class Form1
    Dim x, y, dx, dy As Integer
    Dim score As Integer

     :

そして、ブロックを消すごとにscoreをプラスし、最新のスコアをScoreLabelに表示します。

    Public Sub HitBricks()
        Dim i, j As Integer
        Dim r, br As Rectangle
        Dim b As Label

        br = New Rectangle(x, y, Ball.Width, Ball.Height)
        For i = 0 To 9
            For j = 0 To 5
                b = brick(i, j)
                r = New Rectangle(b.Left, b.Top, b.Width, b.Height)
                If b.Visible = True And r.IntersectsWith(br) Then
                    dy = -dy
                    b.Visible = False
                    score += 1
                    Exit Sub
                End If
            Next
        Next
    End Sub

タイマーイベント内の最後で、スコアの表示を更新します。

    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
        ScoreLabel.Text = "スコア: " & score
    End Sub