§2 モグラたたきゲームの制作 VB6
 (6) 改良いろいろ V 前へ 目次へ 次へ 

 3. ゲームに時間制限を設け、時間内の得点を競うゲームとする。

 制限時間は30秒とする。この30秒を計測する方法としては、@タイマーを追加して計測する、Aコンピュータ内蔵時計を利用して計測する、の2つが考えられる。
 ここでは@タイマーを追加して計測する方法で作成する。処理は次のように考えられる。

  1. ゲーム開始の確認メッセージを出す。MsgBox命令。
  2. 確認(OKクリック)後、ゲームと時間計測を開始する。
  3. 制限時間後、ゲームを終了し、続けるかどうかの確認をする。

 フォームにタイマーコントロールを1つ追加(Timer2)して、Intervalプロパティを30000(30秒)に設定する。

 実行後にゲーム開始を確認する必要がある。処理は実行後に処理されるForm_Loadプロシージャの乱数初期化の後にに書く。(次のプログラムリスト)。

・プログラムリスト

Private Sub Form_Load()
    Dim n As Integer

    Command1(0).BackColor = QBColor(8)        'ボタンの色
    For n = 1 To MoguraMax
        Load Command1(n)        '新しくボタンのオブジェクトを作る
        With Command1(n)
            '新しいボタンのX(Left), Y(Top)座標
            .Left = (Command1(0).Width + 120) * (n Mod 3) + 120
            .Top = (Command1(0).Height + 120) * Int(n / 3) + 120
            .Caption = Str(n)          '数字表示
            .BackColor = QBColor(8)    'ボタンの色
            .Visible = True            'ボタンを表示させる
        End With
    Next n
    Randomize        '乱数初期化
    'ゲーム開始確認
    Form1.Show                  'フォーム(ウィンドウ)表示
    Timer1.Enabled = False      'タイマー停止
    Timer2.Enabled = False      'タイマー停止
    MsgBox "ゲームを開始します。", vbOKOnly, "モグラたたき"
    Timer1.Enabled = True       'タイマー作動
    Timer2.Enabled = True       'タイマー作動
End Sub

 確認の前に、フォームを表示し、2つのタイマーを停止させる。
 MsgBox命令の中のvbOKOnlyはあらかじめ設定されている定数である。OKボタンだけを出す指定である。
 OKがクリックされたらゲーム開始である。2つのタイマーを作動させるだけである。
 タイマーはEnableプロパティでスタート(作動)、ストップ(停止)することができる。

 次は、30秒後の処理である。Timer2は30秒(Interval=30000)に設定されているので、時間になるとTimer2_Timerプロシージャが処理される。

・プログラムリスト

Private Sub Timer2_Timer()
    Dim msg As String       'メッセージ用
    Dim yn As VbMsgBoxResult

    Timer1.Enabled = False      'タイマー停止
    Timer2.Enabled = False      'タイマー停止
    msg = "得点は" & Tensuu & "点でした。ゲームを続けますか?"
    yn = MsgBox(msg, vbYesNo, "モグラたたき")
    If yn = vbYes Then
        Tensuu = 0              '点数初期化
        Label1.Caption = "得点=" & Str(Tensuu)
        Timer1.Enabled = True   'タイマー作動
        Timer2.Enabled = True   'タイマー作動
    Else
        Unload Me
        End
    End If
End Sub

 2つのタイマーを停止させてゲームをストップし、ゲームを続けるかどうかの確認をする。上のプログラムリストでは確認と同時に点数も表示している。
 続けるときは点数を初期化してからタイマーを作動させる。
 続けないときはプログラムを終了する。


 (6) 改良いろいろ V 前へ 目次へ 次へ 
Copyright © 2001,2002 Hiroshi Masuda 

 

 

inserted by FC2 system