弾幕360度 - 技術的な話

since: 2003-09-20 update: 2003-09-20 count: 7090

user side はこちら。

説明

たぶん今をときめく D 言語で書かれています。

拙作 d_cpp や それを用いて、 libBulletML議会制弾幕回避機関 が動いているサンプルになるかと思います。

だらだらと説明

Windows で D の部分をコンパイルするには、 D コンパイラ dmd、DigitalMars の C コンパイラ sc、 DigitalMars もしくは BorlandC++ 付属の (つまるところ OMF を扱える) implib、 GNU make が必要です。 GNU make は私が cygwin でコンパイルするために使っているものですが、 適当に Makefile.win32 を書きかえれば他の環境でもなんとかなるでしょう。 また import library であるところの SDL.lib と opengl32.lib は DedicateD から持ってきて下さい。 user32.lib や kernel32.lib は dmc 付属のもの、 phobos.lib は dmd 付属のものをお使い下さい。

一方 bulletml や cpu ディレクトリの下は BorlandC++ でコンパイルします。 本当は DigitalMars のものでやりたかったのですが、 C++ の対応がいまひとつだったように見受けられたので、 BorlandC++ でコンパイルし、dll を作り、 その import library を作って本体とリンクします。 この場合のビルドは bulletml/tinyxml, bulletml, cpu の 三つのディレクトリで BorlandC++ 付属の make を Makefile.bcc32 を使って起動すれば OK です。

Linux では恐らく随分簡単で、 gcc と dmd が入ってれば後は make 一発じゃないかと思います。

さらにだらだらと説明します。

cpu.d, bulletml.d は perl で生成されています。 perl があれば cpu/cpu_d.cpp, bulletml/bulletml_d.cpp から d_cpp を用いて生成できると思います。 Linux の Makefile を見ればいくらかわかるかと。

d_cpp は def ファイルも吐くと便利だと思いました。

opengl.d は linux のことを考えてくれてなかったので書きかえてます。

mesaglu.d は glu32.lib が動くまでの間に合わせです。 Mesa を使ったため MIT ライセンスに従って下さい。

libBulletML は例のごとく修正 BSD ライセンスです。

残りは GPL2 です。 ですが、winmain.d は DigitalMars のサイトを全面的に参考にしてますし、 こいつはご自由にご利用下さい。


home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h