SunEasyXTitl

Version 2000.01.30

概要
 DirectXを簡単に、簡潔に使うためのクラスライブラリ(ライブラリと言うほど多機能じゃないけど)です。現在、Direct Draw、DirectSound、DirectMusicに対応しています。これだけあれば、一応ゲームは作れるのではないと言う感じです。

 それぞれのDirectXオブジェクトの初期化、データの読み込み、展開(再生)を主眼に設計されています。アプリケーション固有のデータ、例えばオフスクリーンサーフェスやセカンダリバッファ、セグメントはクラスの外に持つ形になっています。要は、面倒くさい初期化をプログラマの目から隠し、もう一つ面倒くさいデータの読み込みなどを楽にしようという訳です。

 オフスクリーンサーフェス、セカンダリバッファ、セグメントなどのデータを外に出したことで、扱いは多少難しくなってしまいましたが、先を考えると利点は多いと思います(どんなデータをいくつ使うか、プログラマがクラスの外で決定できる)。

 そういった訳で、名前とは裏腹に(^;DirextXの知識が多少はないと使えないかも知れません。が、サンプルソースを見て使い方が分ればOKですので。DirectXの思想位しか知らなくても使えるかも知れません。まぁ、それでもWinProcとはなんぞやとか、WinMainとはなんぞや位は判ってないと辛いかも知れませんので、なんにも知らない人は多少は勉強が必要です。

EasyXクラスライブラリ
 EasyXのクラスライブラリソースです。プロジェクトに追加して使用して下さい。

EasyDraw
 DirectDraw用のクラスライブラリです。EasyDraw.cppとEasyDraw.hがあります。

EasySound
 DirectSound用のクラスライブラリです。EasySound.cppとEasySound.h、及びEasySound3D.cppとEasySound3D.hがあります。EasySound3Dを使う場合は、EasySoundもプロジェクトに追加する必要があります。

EasyMusic
 DirectMusic用のクラスライブラリです。EasyMusic.cppとEasyMusic.hがあります。


リファレンスマニュアル
 現在、DirectDraw、DirectSound、DirectMusicの3つのDirectXに対応しています。

EasyDrawリファレンス
 EasyDrawの初期化、DirectDrawの用語解説、各種メソッドの使い方(初期化、スプライトの作り方、描画、解放など)を解説しています。最後には、簡単なサンプルのソースも載せてあります。参考にしてください。

EasySoundリファレンス
 EasySoundの初期化、DirectSoundの用語解説、各種メソッド(初期化、セカンダリバッファの作り方、再生の仕方、解放など)を解説しています。最後には、簡単なサンプルのソースも載せてあります。

EasyMusicリファレンス
 EasyMusicの初期化、DirectMusicの用語解説、各種メソッド(初期化、セグメントの作り方、再生の仕方、解放など)を解説しています。最後には、簡単なサンプルのソースも載せてあります。


サンプル
 とりあえず使い方を学習するためにサンプルを用意しました。VC++Ver6.0以降でビルドできると思います。

EasyDrawサンプル

 起動すると、フルスクリーンモードになり、画面一杯を大量の顔が横切ります。ウィンドウの枠は細工をしてないので、リサイズ出来たりします(^;。終了は、ALT+F4か、画面の右上をクリックして下さい。

 実行ファイルは、"draw.exe"、VC++6.0のプロジェクトファイルは、"draw.dsw"です。


EasySoundサンプル

 起動すると、ウィンドウがでます。Zキーで、「ぐっじょぶ!」、 Xキーで「ぐれぃと!」、Cキーで「やったぁ!」と、効果音が出ます。3Dサウンドを使っているので、それぞれ音の方向が違います。注意して聞いてみて下さい。

 終了は、ALT+F4か閉じるボタンです。実行ファイルは、"sound.exe"、VC++6.0のプロジェクトファイルは、"sound.dsw"です。


EasyMusicサンプル

 起動すると、ウィンドウがでます。まず、セグメント1の曲が再生されます。あとはキーで操作できます。 Xキーでセグメント2の曲を再生できます。1と2は、パフォーマンスを共有しているので、1の再生中に2を再生すると、1は止まります。1か2を止めたい場合は、Sキーを押して下さい。また、Aキーを押すと、セグメント3の曲を再生します。3は、独立した追加のパフォーマンスを使うので、1や2が再生中でも、止めることなく平行して再生することが出来ます。

 終了は、ALT+F4か閉じるボタンです。実行ファイルは、"music.exe"、VC++6.0のプロジェクトファイルは、"music.dsw"です。


EasyDraw、EasySound、EasyMusicサンプル

 EasyDraw、EasySound、EasyMusicを組み合わせた場合のサンプルです。起動すると、ウィンドウがでます。画面に2種類のキャラクタが現れ、効果音が適当に鳴り、MIDIがループで再生されます。

  画面内でマウスの左クリックをすると、フルスクリーンモードに切り替わります。逆も出来ます。

 終了は、ALT+F4か閉じるボタンです。実行ファイルは、"Draw_Sound.exe"、VC++6.0のプロジェクトファイルは、"Draw_Sound.dsw"です。



配布、改造、免責
 配布は自由、使うのも自由とします。また、改造も自由です。でも、改良したら、その場所と理由を教えていただけると嬉しいです。こちらも参考になりますので。でもね、そこまで出来る人って自分用のライブラリを、既に持ってたりするんですよね。基本的には初心者用ですからね、このライブラリ。とか言いつつ、データを外に出す仕様にしたり(^;。中途半端な設計だ・・・。っていうか、自分用に設計したもんすから。改造後のファイルですけど、マニュアルなんかと不整合が出ますので、一応配布禁止とします。が、まぁ、厳密に禁止ってわけじゃ無く、改造した事を相手に伝えればOKとしときます。

 ちなみに、EasyXを使って何かソフトを作って、EasyXのせいで何か起こっても、責任は取れませんです。お約束ですが。ただ、バグがあった場合は修正しますので、メールでも送って下さい。


予定
 とりあえず、Direct Inputは作ろうかと思っています。Direct Playは、クラスにするには構造が複雑だし、意味が無いような気もしつつ、ピアツーピアならクラスにしても良いかなとか、色々考え中です。通信対戦のゲームも作りたいので、自分用に作ろうかなとか。

 あと、DirectXと言ったらと言う感じのDirect3Dですが、DirectX7から追加されたDirect3DXがあるんですよね。これ使えば楽勝で初期化もなんもかんも出来てしまうので、Easy3Dの必然性を感じないような気も・・・。どうしましょ?

 と、こんな感じですか。一通りライブラリが出来たら、次回作、「かるねあ」作りますんで。それまでサイナラ〜。かるねあを公開できる頃には、新しいEasyXもリリースする予定ですので。


二言三言
 ふ〜、1ヶ月ほどかけて、やっと一通り揃いました。ドキュメント、サンプル、クラスと。結構掛かりましたね。まぁ、仕事してるとこんなもんですか。

 で、EasyXですが、本来自分の為に設計してるもんで、初心者用と言うには難しく、判る人が使うには中途半端というか、判る人は自分で作ってるって感じのライブラリになってます。とりあえず、DirectX初心者の人がコレを使ってDirectXの勉強とかして、EasyXを改造して自分用のライブラリにしちゃう、なんて事になったらいいかなとか思ってます。なんせ、DirectSoundとかDirectMusicのクラスライブラリってあんまり無いですからね。フリーウェアだと。なんでか知らないけどさ。DirectDrawとかDirect3Dなんかは結構あるんだけど。

  で、まぁ、自分のゲーム作るために必要なんで作ってみたのが事の始まりで、本当はDirectMusicなんか使うはずじゃなかったんだけど、MCIがイマイチうまく動かない(Windows起動後1回目の実行でこける(原因はパスを未設定だからなんだけど))って事で、EasyMusicとかも作ってみました。全体的にいい加減な部分とかあるんで、実際にゲーム(かるねあ)を作りながら修正して行こうかと思っております。なので、これは、まぁ、こんなん作ってみましたって感じで。ええ。

 んじゃ、ま、これをどれくらいの人が読むのか判らないですけど、かるねあ、お楽しみに。っていうか、GENESIS ROCKとかもよろしくです。でわ。

written by Matsumoto keizi