LAST UPDATE 1998/08/15


『 その9-2 』


 ■ Startボタンのコード

image153.gif
    Timer.Enabled = False Stage = 0
 タイマーイベントを禁止して、面番号に0を入れている。
    Do
     If (ClearMesh(-1) < 0) Then Exit Do
    Loop
タイトル表示で読み込んであったオブジェクトを破棄している。ここではDx_Doneは使わない。なぜかと言うと、せっかく設定したライトや背景は残しておきたいからである。ClearMeshの入力引数を-1にすると、破棄するオブジェクトIDの指定なしという意味になる。この関数はコールされる度に1個ずつオブジェクトを破棄していくが、全部破棄されると戻り値として-1を返す。そうなるとExit Doが実行されLoop行の次に処理が移るのである。そうでない場合は再びDo行に戻って同じ処理を繰り返す。
    Call Build_Stage
これはVB内でのサブルーチンでJmainBのGeneralに製作される。ここでBlockInfoの初期化と、それに従ってブロックの3次元データを読み込み、シーンに設定する。
    Cam.px = -5
      :
      :
    Call SetCam_A(Cam)
これはカメラの位置と角度の設定である。数値は「何度も試して一番良さそうなのを採用した。」方式で決めてある。
    Call DX_Draw
    Gmode = 1: Mjob = -1
Build_Stageで構築されたシーンを表示して、ゲーム内での変数をセットしている。
    Timer.Enabled = True
準備が全て整ったので、タイマーイベントを許可してゲームが始まるのであるが、まだその先は作っていないので、ここではコメントにしてある。



 ■ Build_Stageコード書きこみ準備

 これは、JmainBのGeneralに置かれるサブルーチンである。コースのデータをBlockInfoにセットして、その内容に従ってオブジェクトデータを読み込み、玉の座標の初期化を行ったりする。JmainBのGeneralのDeclarationを表示して、その最後の行に文字のカーソルを移動し、Sub Build_Stage [Enter]と入力しよう。すると、End Subが追加されてサブルーチンになる。(と、既にMakeCourseで説明した。)

 ■ Build_Stage(通常ブロックの処理)

image155.gif
     Call MakeCourse(Stage)
 MakeCourseを呼び出している。戻ってっ来るとBlockInfoの中にコースのデータが入っている。
    For Y = 1 To 5
     For X = 1 To 5
     Next X
    Next Y
 この2重ループでは、普通のブロックデータ(Block0~Block9まで)だけを処理している。だから一番外側の座標である0と6が使われないように、X=1 to 5というスタートと終了条件を与えているのである。
    B = BlockInfo(X, Y, 1)
 BlockInfoからコースのデータを取り出している。その数値はBに格納される。(当たり前過ぎるか…)
    If ((B >= 0) And (B <= 9)) Then
通常ブロックのデータか空白であるかの判断をしている。
    Fnam = "block" + Right(Str(B Mod 10), 1) + ".x"
    B = AddMesh(Fnam, -1, 1)
ブロックのXファイル名を作って、Fnamに格納し、そのファイル名でシーン中に追加している。この時点でBにはオブジェクトIDが読み込まれる。このIDは動かすときのMove_AもしくはMove_R関数を使うときに必要になる。
    Call Move_A(B, (X - 3) * 2, 0, (Y - 3) * 2)
シーン中の所定の場所へ配置している。所定の場所については次に解説する。
    ElseIf (B = -1) Then
     Ex = X: Ez = Y
 BlockInfoから読み込んだ値が-1であった場合それは空白を意味する。ここでは空白の座標を管理するEx, Eyにその座標を入れている。
    BlockInfo(X, Y, 0) = B
オブジェクトIDをBlockInfoにセットしている。BlockInfo(X, Y, 0)はオブジェクトIDを格納し、Blockinfo(X, Y, 1)はプログラム内でのブロック識別コードを格納するようになっているので注意すること。







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

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


もどる

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