Demo 7

今回は新しいコンポーネントの説明となる。DGCIntoroLib は、スライドショー的なイントロを表現するためのコンポーネントだ。このコンポーネントを使用するに当たり、用意しなければいけないのは数枚のビットマップだけであり、「DGC Intoro Screen Library Editor」を使うことによってそれらを簡単に、そして効果的に切り替えながら表示することが出来る。

ただし、小さなゲームには不釣り合いなファイルサイズになる可能性があり、用意されているエフェクト以外の使用に関しては、意外に融通が利かない。しかし、逆にちょっとしたゲームでも、こうしたデモがあるだけでかなり見栄えがするようになるので、利用する価値は十分にある。ではさっそくこのコンポーネントの使い方を見てみることにしよう。

procedure TForm1.DGCScreen1Initialize(Sender: TObject);
begin
     // set Introlib filename and path to the applications path
     DGCIntroLib1.Filename:=Extractfilepath(Application.ExeName)+'\intdem.crl';
     // Play The intro Screens
     DGCIntroLib1.Play;
DGCIntoroLib コンポーネントは、DGCAudio に使い方が似ている。しかし、DGCAudio が DGCSoundLib を使用するのに対して、DGCIntoroLib はこれだけで機能するように作られている。その代わり、「DGC Intoro Screen Library Editor」を使って作られた *.crl ファイルを実行時に読み込むようになっている。それが最初の行だ。Extractfilepath はファイル名のフルパスから、パスの部分だけど取り出す命令だ。ここでは、実行ファイルと同じディレクトリにある「intdem.crl」ファイルのフルパスを DGCIntoroLib1.Filename に入れている。DGCIntoroLib コンポーネントは、むしろ DGCIntoroPlayer といった方がぴったりしているように感じる。実際のライブラリはこの時指定したファイルであり、イントロの実行には Play メソッドを呼び出す。

それでは、そのライブラリを作る手順を説明しておこう。まずは Tools ディレクトリの「DGC Intoro Screen Library Editor」を起動する。次に「Open Bitmap Image」ボタンを押し、ビットマップを読み込む。このイメージをライブラリに追加するために、左下にある「Add Current Image To Library」ボタンを押す。これを繰り返すのだが、今回はそれぞれのイメージに対して設定しなければならないプロパティがある。

「Transition Effect」は、そのイメージが表示される時のエフェクトを指定する。「Zoom Open」や「SlideUp」など、たくさんのエフェクトがあるのでいろいろ試してみるといい。「Set Transition Speed」は各イメージにおける、表示される速度である。時間はエフェクトによって違うようだが、小さいほど早く表示される。「Set Time To Hold Slide」は次のイメージに切り替わり始めるまでの時間である。単位は秒。

これらの設定が終わったら、その設定を有効にするために「Update Transition Properties」ボタンを押す。設定は各イメージ毎に管理されているので、すべてのイメージでこの作業を行う必要がある。なお、イメージは画面の大きさにあわせて拡大・縮小されるので、画面サイズと同じイメージを用意する必要はないが、プロポーションをそろえておかないと思ったように表示されない。全て終わったら「Save Image Library」ボタンを押す。ここは「Save Intoro Library」としてあった方が良い気がする。

  // Draw something on the background screen
  DrawFrame;
  // Make it appear using some effect
  // Parameters (DGCSurface,EffectType,Transition time(secs),HoldTime
  // note for effect type you need to include BmpUtil in the uses clause
  DGCIntroLib1.AppearSurface(DGCScreen1.Back,SlideRight,5,0);
さて、イントロが終わったら次はゲーム画面であるが、この時も任意のエフェクトが使用できる。バックバッファサーフェイスに好きな画面を書き込んだら、AppearSurface メソッドを呼び出すのだ。このメソッドの引数は、DGCSurface(ここは今回はバックバッファサーフェイスの Back )、EffectType 、Transition time 、HoldTime の順となる。

ゲームに彩りを添えるイントロだが、今回のデモプログラム程度でもライブラリファイルの大きさは、実行ファイルに比べてずっと大きなものになっていて、これはあまり歓迎できない。しかし、これらのファイルは圧縮効率がきわめて高くなるので、配布時には問題にならないかもしれない。

もどる