LAST UPDATE 1998/07/24


『 その6-2 』




 ■ メニューのチェック

 このアプリは起動直後にはXファイルビューワーとしての機能を持たせる。そこで、それがわかるように Pu_Mdde_Xfile のチェックを ON にしておいたわけだが、このメニューで Junction を選んだときにはそこがチェックされなくてはならない。VBはこの作業を自動的にはやってくれないので自作しなければならない。
image  <1>
  フォームのメニュー:[モード切替え>Junction] をクリックするとコードが表示される。オプジェクト名は Pu_Mode_Junction になっている。これはメニューエディタで入力した名前だ。イベントリストを開いてみるとわかるが、このメニューオブジェクトというやつは、Click イベントだけをサポートしている。
 <2>
  ここでVBのヘルプを使って、キーワードに menu と入力してみよう。すると 「Menu(メニュー コントロール)」 という項目がある。それをダブルクリックして内容を表示してみよう。説明が表示され、上の方に「イベント」という項目があるのでそれをクリックしてみる。すると 「Click」 だけが表示される。これで、メニューがサポートしているイベントは Click だけであるという事がわかる。今度は 「プロパティー」 をクリックする。すると今度はメニューがサポートしているプロバティー 一覧が表示され、それぞれを選択する事によりその機能を調べる事ができるわけだ。今回は 「Checked」 というプロパティーが関係あるので、それを選んで一読しておこう。(実はこういった行為がVB上達の極意だったりするわけだ。)
 <3>
  ヘルプによると、値はブーリアンという事になっているので、 TrueFalse が入るわけである。Junction がチェックされていた場合に値は Trueである。もともと Trueであった場合には何もする必要がないわけで、 False だったときには、Xファイルビューワーのチェックをはずし、Junctionをチェックすれば良いわけだ。そこでコードは(図1)のようになる。
image
(図1)
 <4>
  同様に Pu_Mode_Xfile にもコードを書き込もう。(図2)
image
(図2)

 ■ プログラムの実行

 プログラムを実行して、メニューを開いてそれぞれの項目を選択してみよう。それでちゃんとチェックの場所が切り替わっているかどうか確認する。当然の事ながらその先のプログラムはまだ作っていないから、チェックの場所が切り替わるだけである。
 実はここでの動作チェックには、プログラムをセーブするという意味もあったりする。「サル講座その3」で実行前にセーブするように設定してあるわけで、実行はテストとセーブの2つの意味があったりするわけだ。ちなみに私が使っているマシンは1日約10時間の稼動中に3回程度固まる。

 ■ ゲームの構成

 このゲームは「タイトル」、「ゲーム本体」、「ゲームオーバー」の3つのモードで構成される。Pu_Mode_Junction のクリックイベントが発生した時点では、Xファイルビューワーでの設定を全て破棄して、ゲーム用の初期化を行い、タイトルがスタートする。
 図3、4はタイトルモードに必要な変数の宣言と、初期化用のコードである。ではそれぞれについて詳しく解説していこう。ちなみに(図3)「'ビューワー…」などとなっている部分はコメントと呼ばれ、「’」に続く部分はプログラムとしてはみなされないことになっていて、好きな事を書いておく事ができるのである。好きな事といいつつも通常はプログラムの説明を書き込んでおくわけだが、「人間は必ず忘れるの法則。」なのである。これは今作った言葉なので聞いた事もないと思うが、自分で作ったプログラムの詳細は数日以内に必ず忘却の彼方へ行ってしまう。数ヶ月を経て自分が作ったプログラムを見ると 「誰じゃこんなの作ったのは。」 に必ずなる。プログラマーは学者じゃないから、必ずズルいことをする。ズルいプログラムは正攻法でないから、わかりにくい。自分で作ったプログラムの意味がわからなくなる。自分で埋めた地雷を自分で踏むのである。ということで、 あとでプログラムをチェックする自分のためにコメントはできるだけ詳しく書いておくのに超した事はない。
image

(図3)
image

(図4)





その6-1 | その6-2 | その6-3 | その6-4 | その6-5 | その6-6

『 サルのゲーム製作講座 』 目次 | その 1 | その 2 | その 3 | その 4 |
その 5 | その 6 | その 7 | その 8 | その 9 | その 10 | その 11


もどる

e-mail: sc_3da@magical2.egg.or.jp