LAST UPDATE 1998/08/08


『 その8-2 』


 ■ コースの初期化ルーチン

 JmainBのGeneralのDeclarationを表示させてその一番下の行に文字のカーソル「|」を動かし
    Sub Make_Course(Sno&) [Enter]
と打ち込む。するとEnd Subという行が加えられサブルーチンが形成される。そこのコードをに図2に示す。
 これは4面分の面の初期データとそれをゲーム内で実際に使われる配列にセットするプログラムで、図1がここで必要な変数宣言の追加分である。

 ■ 配列

 ここではまず、配列とは何かを説明しなければならない。まず一番基本的なことであるが、配列とは変数の一形態に過ぎないということである。変数であるからして、宣言が必要だ。
    Public Hairetu&(3)
    Public Hairetu(3) As Long
    Dim Hairetu&(3)
などのように宣言する。通常の変数と同様にPublicは標準モジュールのDeclarationで使いどこからでも参照可能なグローバル変数としての宣言で、Dimはプロシージャー(関数やサブルーチン)の先頭で使い、そこだけで使うためのローカル変数の宣言である。…ということは既に知っているはず。Hairetuというのは変数の名前で、その後の&はLong型であることを示す。&の代わりに行の最後にAs Longと書いても同じ意味になる。
 ここまでは普通の変数とまったく同じ。違いは(3)の部分である。このようにするとHairetuという変数は配列になる。この宣言によって
  Hairetu(0)、Hairetu(1)、Hairetu(2)、Hairetu(3)
という4個の変数が用意されるのである。宣言部分の3はその配列の番号(「添え字」とかIndexと呼ばれる)の最大値を表すので、0~3で4個なのである。このように宣言するとHairetuのように()無しで単独で使うことはできなくなる。
 上の例では、添え字が1個なので1次元配列と呼ぶ。宣言を変えると多次元の配列も使用可能で、
    Public Hairetu&(3,3)
    Public Hairetu&(3,3,1)
のようにする。上の例は4×4=16個の変数が用意され、下の例では4×4×2=32個の変数が用意される。なぜ多次元の配列かというと、例えばアパートで15号室と言うよりも、3階の2号室と言った方が郵便屋さんに親切だからである。(そう言えばアパートの各部屋までは配達してくれないから、宅配便屋さんといった方が正確かもしれない。)

 ■ 配列にデータを格納

 まず、図1のように、ゲーム中でのボール情報を格納する変数型(BallStruct)と変数そのもの(Ba)を宣言する。それから、ゲーム中のコースのデータを管理する配列(BlockInfo)を用意する。
 図2の前半は入力引数SNOによって処理が振り分けられ、目的の面の初期データを変数に設定している。コース内容の変更や、面数の追加はここで行えば良い。後半でBlockInfoにデータをセットしている。


image149.gif
図1:コースデータ用変数宣言


image151.gif
image150.gif

図2:コースデータと初期化部分





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

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


もどる

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