LAST UPDATE 1998/07/24


『 その6-4 』



image

 ■ プログラム解説 (続き)


    Call Dx_Init(Pic.hWnd, 1)

     [ 10 行目 ]
     ここでゲーム用に新しくDirectXのオブジェクトを作成している。第二引数の はハードウエアアクセラレーションを使うという意味である。 にしてうまく行かないようであれば、ここを にして試してほしい。 は全てソフトウエアで行うという意味である。ハードウエアを使ってうまく動かない場合は、ディスプレイドライバが悪いか、それとも AtelierDx3.dllが悪いかである。ドライバを最新にしても動かないようであれば、それは私のせいかもしれないので、ユーザーサポートもしくはフォーラムに書き込みをしてほしい。

    Call SetBGimage("bgimage.bmp")

     [ 11 行目 ]
     背景用のビットマップを読みこんでいる。オリジナルはフルカラーなのだが、ディスプレイカードの性能によって256色表示になったりする。また、このイメージは2のべき乗のサイズのみが使用可能である。中途半端なサイズの絵を読み込もうとすると何も表示されないので注意すること。2のべき乗とは

    2,4,8,16,32,64,128,256,512.....

    である。イメージは上下さかさまで表示されるので注意。

    T_ID = AddMesh( "Title.x", -1, 1)
    Ball_ID = AddMesh( "Ball.x", -1, 1)

     [ 12,13 行目 ]
     ここでX形式の形状2個を読み込んでいる。 T_IDBall_ID には AddMesh の戻り値であるID番号が格納される。これらは後でオブジェクトを回転・移動させるときの識別番号である。ちなみにこの場合は何もない世界に読み込まれた最初と2番目のオブジェクトであるから、0番と1番が入る。  次の -1 は親オブジェクトのIDを意味するが、この場合は両方とも独立して動かすオブジェクトであるため、親はいない。従って「親無し」を意味する-1をセットしている。  最後の1はフラットシェーディング表示を意味している。
    Cam.Px = 0 ~ Cam.Az = 0
    Call SetCam_A(Cam)

     [ 14~19,20 行目 ]
     カメラの位置と角度を設定している。
    Lig.Ax = 40 ~ Lig.Ay = 30
    Call SetLight(Lig)

     [ 21,22,23 行目 ]
     ライトの角度の設定をしている。このライトは平行光源であるため、Zの回転角や位置には意味がない。
    Bpx = 0 ~
    Tpx = 0 ~

     [ 24,25 行目 ]
     これは、玉とタイトルの初期座標と初期角度を設定している。
    Gmode = 0

     [ 26 行目 ]
     タイマーイベントが発生したときの処理コードを設定している。
      0: タイトルモード
      1: ゲームモード
      2: ゲームオーバーモード
    という意味を持たせ、タイマーイベント内で使われる。後で説明するので今は細かいことは気にしないでほしい。
    Mjob = 0

     [ 26 行目 ]
     これは、ゲームモード内での更に細かい動作の処理コードを設定している。これも後で説明するので、気にしない事。
    Timer.Enabled = True

     [ 27 行目 ]
     初期化が終了したので、タイマーイベントを許可している。

 今までの方法を踏襲するのであれば、ここで実行テストと行きたいところなのだが、まだタイマーイベント部分ができあがっていないので、テストはできない。もう少し我慢してほしい。






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