§2 モグラたたきゲームの制作 VB6 | |
(6) 改良いろいろ U |
2. ヒットしたときの得点が高い「ボーナスモグラ」を追加する。
ここで必要な処理は、@「ボーナスモグラを出す処理」と、A「ボーナスモグラをヒットしたときの処理」の2つである。
@「ボーナスモグラを出す処理」
モグラを出す処理はTimer1_Timerプロシージャの中である(次のプログラムリスト)。
Private Sub Timer1_Timer() Static rr As Integer 'Static Dim rn As Integer If rr <= 8 Then '8以下の時にボタンの色を元に戻す Command1(rr).BackColor = QBColor(8) '前回色を変えたボタンの色を元に戻す End If Do rn = Ransuu(0, 17) '乱数 If rn <> rr Then '前回と違う位置 Exit Do End If Loop If rn <= 8 Then '8以下の時にボタンの色を変える Command1(rn).BackColor = QBColor(4) 'モグラの色設定 End If rr = rn End Sub
ボーナスモグラの色はQBColor(12)(明るい赤)とする。モグラの色設定(上のプログラムリスト赤色部分)でボーナスモグラか普通のモグラかを決めて設定する色を変えることになる。
どちらのモグラを出すかは、やはり乱数を使うことになる。
例えば、1/10の確率でボーナスモグラを出すことにすると、Ransuu(1,10)で10までの乱数を発生して1のときだけボーナスモグラを出すようにすればよい。確率を1/50にするにはRansuu(1,50)というように関数Ransuuで発生する乱数の範囲で調整できる。
・プログラムリスト
Private Sub Timer1_Timer() Static rr As Integer 'Static Dim rn As Integer If rr <= 8 Then '8以下の時にボタンの色を元に戻す Command1(rr).BackColor = QBColor(8) '前回色を変えたボタンの色を元に戻す End If Do rn = Ransuu(0, 17) '乱数 If rn <> rr Then '前回と違う位置 Exit Do End If Loop If rn <= 8 Then '8以下の時にボタンの色を変える If Ransuu(1, 2) = 1 Then Command1(rn).BackColor = QBColor(12) 'ボーナスモグラの色設定 Else Command1(rn).BackColor = QBColor(4) 'モグラの色設定 End If End If rr = rn End Sub
上のプログラムリストではボーナスモグラの出る確率を1/2にしている。これは動作テストをする必要があるのでテストしやすいように確率を高くしている。テストが終われば確率を適当に下げることを忘れないようにすること。
実行してボーナスモグラ(明るい赤色)が出るか確認する。ただし、ヒットしても得点にはならない。
A「ボーナスモグラをヒットしたときの処理」
ヒットを判定する処理はCommand1_Clickプロシージャの中である(次のプログラムリスト)。
Private Sub Command1_Click(Index As Integer) If Command1(Index).BackColor = QBColor(4) Then 'ヒットの判定 Tensuu = Tensuu + 1 'ヒットした。得点加算。 End If Label1.Caption = "得点=" & Str(Tensuu) '得点表示 End Sub
ボーナスモグラの色はQBColor(12)であるから、If文を追加すればよい。ここでは、ボーナスを5点とする。
Private Sub Command1_Click(Index As Integer) If Command1(Index).BackColor = QBColor(4) Then 'ヒットの判定 Tensuu = Tensuu + 1 'ヒットした。得点加算。 ElseIf Command1(Index).BackColor = QBColor(12) Then 'ボーナスヒットの判定 Tensuu = Tensuu + 5 'ヒットした。得点加算。 End If Label1.Caption = "得点=" & Str(Tensuu) '得点表示 End Sub
(6) 改良いろいろ U | |
Copyright © 2001,2002 Hiroshi Masuda |