§2 モグラたたきゲームの制作 VB6 | |
(4) モグラを出す |
制作中の “モグラたたきゲーム” のプログラムを呼び出す。
モグラを出す代わりにボタンの色を変える。ボタンの色を変えるタイミングは、タイマーコントロールで発生させる。
フォームにタイマーコントロールを1個配置(場所は適当で良い)する。タイマーのIntervalプロパティは、700(0.7秒)とする。
色を変えるボタンの番号は乱数で計算することにする。乱数のサンプルで作成した乱数発生のユーザ関数(Ransuu)をモグラたたきゲームのプログラムに追加する。
・プログラムリスト
Private Sub Form_Load() <<省略>> Next n Randomize '乱数初期化 End Sub Private Sub Timer1_Timer() Static rr As Integer '(#1)Static Dim rn As Integer Command1(rr).BackColor = QBColor(8) '前回色を変えたボタンの色を元に戻す Do rn = Ransuu(0, 8) '乱数 If rn <> rr Then '前回と違う位置 Exit Do End If Loop Command1(rn).BackColor = QBColor(4) 'モグラの色設定 rr = rn End Sub Private Function Ransuu(lower As Integer, upper As Integer) As Integer Ransuu = Int((upper - lower + 1) * Rnd + lower) End Function
(#1) Static
プロシージャ内で宣言された変数は、プロシージャ内だけで有効である。
Dimで宣言された変数は、プロシージャが呼び出されるごとに変数の領域が用意される。したがって、前回のプロシージャ呼び出しで記憶した値は消えている。
Staticで宣言された変数(静的変数という)は、プロシージャの呼び出しに関係なく、プログラムが終了するまで、変数の領域が確保されたままになる。したがって、前回のプロシージャ呼び出しで記憶した値はそのまま記憶している。
ここでは前回、色を変更したボタンの番号を記憶させている。
(4) モグラを出す | |
Copyright © 2001,2002 Hiroshi Masuda |