LAST UPDATE 1998/07/24


『 その6-5 』



image

 ■ タイマーイベント


 まず、プロパティーウインドウを使って、Intervalプロパティーを33にする。
 こうすると33msecに1度タイマーイベントが発生する。ということは1秒間に約30回のイベントが発生することになり、秒間30フレームの動きを作り出す事ができるのである。しかし、これはあなたのパソコンの処理速度が十分に速いときだけ実現できるのであるわけで、タイマーイベント内の処理に33msec以上かかってしまう場合には、30フレーム表示は無理である。しかし、パソコンの処理速度が十分に速い場合に、好き勝手なスピードで処理されるとゲームスピード全体が速くなりすぎるので、ここではスピードの上限リミッターという考え方もできるかと思う。
 さて、このゲームは3個のモードを持っている。タイマーイベントの部分に全てのコードを書き込むと長くなって美しさが損なわれるので、ここではGmodeによって処理を振り分けるだけにしておく。ここで使われているSelect Caseという命令はその後に続く変数Gmodeの値が0であれば、Titleという部分に飛ぶ。後でゲーム用とゲームオーバー用の部分が必要になったら、ここに書き加えていくのである。
 ここではCallが使われているからして、Titleが処理された後はここに戻ってくる。そして、最後の行のDx_Drawが呼ばれて、画面に描画を行い、タイマーイベント処理は終了する。

image

 ■ Title処理サブルーチン制作


 このTitleという処理部分(サブルーチンと呼ぶ)のコードは、FormのGeneralに記述する事にする。オブジェクトリストを開いて、(General)と書いてある部分をクリックする。
すると「サル講座その3」で宣言した変数の残りカスがあるはず。
これはもう必要ないので消してしまう。そして、そこに

    sub Title( ) [Enter] (※[Enter] は書き込むのではなく、[Enter]キーを押すこと)

と打ち込む。すると図のように新しくサブルーチンを記述できるようになったはずである。
image
image

 ■ Titleの処理

サンプルのゲームを思い出してほしい。
     <1>
      Junctionという文字が奥の方から回りながら飛んできて、やがて止まる。

     <2>
      玉が画面左上に表示される

     <3>
      玉は落下し、跳ね返りながら画面の右端まで行き、再び左側へ戻ってくる。そして1番の処理に戻る。

大きく分けてこの3種類の処理が必要である。それを識別し振り分けるのがMjobという変数である。これをSelect Caseを使って処理するために、外枠だけまず作ってしまう(図1)
image

(図1)

 ■ Mjob=0処理内容

 上記(図1)の処理を分解してみよう。まずは座標である。「奥から手前へ飛んでくる」という事は、「Z座標がマイナス値から0になるように増る」という事を意味する。上下左右には動かないわけだから、XY座標は0のままで良い。前ページ(その6-4)図を見てわかる通り、タイトルオブジェクトのZ座標の初期値は-50にしてある。それを0に近づけて行けば良い。





その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