ActiveBasicはDirectXを扱うアプリケーション(以下DirectXアプリ)を作成することができます。DirectXとは、Microsoftが提供する拡張APIセットの1つであり、マルチメディア関連の機能が強化されています。DirectXを利用すれば、ハードウェアを直接的に制御する高速アプリケーションを(家庭用ゲーム機と同レベルのソフトウェア)を開発することができます。
現在のActiveBasicにはDirectX9.0に対応するインクルードファイルが搭載されています。
DirectXアプリを開発するとき、プログラマーは、下の2つの方法を選択することができます。
1. ABDX(ActiveBasic with DirectX library)を利用した開発ProjectEditorの機能を利用すれば、DirectXアプリ開発に最低限必要なコードを生成することができます。初期化及び終了処理などはすべて自動的に生成されるため、プログラマーは3Dオブジェクトに対するコーディングのみを集中して行うことができます。また、COM操作を意識しないコーディングを行えるのも1つの特徴です。特に理由がない限り、こちらの手法を選択することをお勧めします。
このヘルプファイルでは、「ABDXを利用した開発」にターゲットを絞り、解説を行っています。
2. COM呼び出しを任意的に行うフルオリジナルコードでの開発DirectXを扱うためのインクルードファイルを取り込み、自前でコーディングを行う手法です。COMインターフェイスの生成/破棄/呼び出しのレベルから、すべてのコーディングはプログラマーに任されます。DirectXアプリ開発経験者、COMベースでDirectXを扱いたい方、DirectX9.0以外のバージョンのDirectXを扱いたい方はこの手法で開発を行うと良いでしょう。
COMベースのDirectXについてのヘルプは、MSDN(http://www.microsoft.com/japan/msdn/library/)でお調べください。
DirectXプログラミングを始める前に、下の項目をチェックしておきましょう。
・DirectX9.0ランタイムライブラリをインストールするActiveBasicのパッケージで容易されているDirectXのインクルードファイルは、DirectX9.0に対応しています。そのため、ActiveBasicを用いてDirectXプログラミングを行うときは、Microsoft(http://www.microsoft.com/japan/)からDirectX9.0エンドユーザー向けランタイムライブラリをダウンロード&インストールする必要があります。
・マシンスペックの確認DirectXアプリは通常のWindowsアプリと異なり、高速な処理を必要とする場合があります。高度なグラフィックス描画を行うアプリケーションを開発するときは、ある程度のスペックを満たしたマシン(1GHz以上を推奨)を採用することをお勧めします。
DirectXアプリのソースコードはRADツールを用いたプログラミングと同様、プロジェクトベースで管理します。「プロジェクトの新規作成 → 編集 → コンパイル → 実行」という一連の流れでプログラミングを行います。
1. プロジェクトを作成するProjectEditor.exeを起動します。メニューの「ファイル」→「新規作成」をクリックし、表示された新規作成ダイアログで「プロジェクト(*.pj)」を選択し、OKボタンをクリックします。プロジェクト名に任意の名前を指定します。アプリケーションタイプで「DirectX対応アプリケーション」を選択し、「次へ」ボタンをクリックします。新規作成ウィザードのステップ2-3では何も変更せずに「次へ」ボタンをクリックし、最後に「完了」ボタンをクリックします。
プロジェクトが生成されると同時に、下のファイルが生成されます。主にコーディングを行うソースファイルは "プロジェクト名.sbp"(ここではhello.sbp)です。他のファイルは特別な理由がない限り、変更が必要になることはありません。
dx_graphics.sbp | DirectGraphicsを扱うためのライブラリ(関数郡)が定義されています。 |
hello.sbp | 実際にコーディングを行うソースファイルです。 |
MainWnd.sbp | メインウィンドウのイベントコーディング用のソースファイルです。ここで対象とするウィンドウはDirectX生成時に必要なダミーであるため、このソースファイルをコーディングすることはありません。 |
メニューの「ベーシック」→「デバッグ実行」をクリックし、コンパイル&実行をしてみます。D3Dデバイスの生成に成功すると、フルスクリーン表示に切り替わり、真っ黒な画面が表示されるはずです。このプログラムはAlt+F4キーを押すと終了できます。
D3Dデバイスが正常に生成できないと、「初期化に失敗しました」というエラーメッセージが表示されます。このような場合はDirectX9.0が正常にインストールできているかどうか、グラフィックボードが正常に動作しているかどうかを確認してみましょう。
上記の「DirectXプログラミングを始める」に示す手順に従って、helloプロジェクトを作成したところから説明します。
1. "hello.sbp" を開くプロジェクトビューのFileタブから "hello.sbp" をダブルクリックしてソースファイルを開きます。すでにソースコードが生成されていますが、その中のRenderProcという関数までスクロールします。
2. テキストを出力するためのコードを打ち込むRenderProc関数の中に下のようなコードを打ち込みます。dx_DrawTextはD3D画面に文字列を表示するための関数です。
3. コンパイル&実行Sub RenderProc() dx_DrawText(100,100,"Hello World!",D3DCOLOR_XRGB(255,255,255)) End Sub
正常に実行されると、画面左上に "Hello World!" という文字列が白色で表示されます。