§2 モグラたたきゲームの制作 VB6 | |
(6) 改良いろいろ V |
3. ゲームに時間制限を設け、時間内の得点を競うゲームとする。
制限時間は30秒とする。この30秒を計測する方法としては、@タイマーを追加して計測する、Aコンピュータ内蔵時計を利用して計測する、の2つが考えられる。
ここでは@タイマーを追加して計測する方法で作成する。処理は次のように考えられる。
フォームにタイマーコントロールを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 |