| プログラムの構造 | |||||
部分部分の解説に移る前に、プログラムの構造の基本的な事をお話しておきましょう。 鑑賞系のものを除けば、ほとんどのプログラムは次のような流れで成り立っています。
この一連の流れを、シューティングゲームのようなリアルタイムで進行するプログラムの場合、秒間に何十回というすさまじい速さで更新していく事になります。よく「FPS」というのが表示されているのを見かけますが、これは「Frame Par Second」の略で、要するに「1秒間に何コマ書き換えをしているか?」という数字になります。一般的なTVアニメの場合、秒間16コマの書き換えを行っています。このサンプルゲームの場合動作環境にもよりけりですが、秒間30コマ(30FPS)の書き換えを行うようになってます。この書き換え数が大きければ大きいほど、滑らかな動きを表現する事ができます。 その一連の流れを制御しているのが、メインルーチンになります。
見て頂ければ分かると思いますが、このメインルーチンでは、画面の消去・再表示(赤い部分)以外は、ほとんどが gosub 命令でサブルーチンにジャンプするようになってます。ポイントとなるのは「どういう順番で画面に表示するか?」です。例えば自機の移動より後に星の描写を行うと、自機の手前を星が流れるようになってしまいます。敵の移動より前に敵弾の移動を行うと、敵の影に弾が隠れて見えないようになってしまいます。様々な処理をサブルーチン化するのは、デバッグをし易くする(どの部分でエラーになったのかがわかりやすい)というのと、画面表示の順番を簡単に制御できるという事が大きいと思います。 ちなみにこのメインルーチンでは、ダメージを受けた場合に画面を赤くする(bgcolor変数で制御)処理と、時間経過(frame変数)によってレベルが上がっていく(level変数)という処理、F10を押すと強制終了するという処理も行っています。
|