じゃあ、僕もPerlで動かそうって気持ちになったんで少しやってみた。
まぁ、PerlにはCをPerlで使えるようにするXSとかいうものがあるんだけど
僕の知識ではXSはわからんのでswigを使用しました。
でこいつ何よ?って話なんだけど
こいつを使うとC/C++ で書かれたプログラムやライブラリを
他の言語でも使用できるようにするという優れもの。
wikipediaさんでは
「Tcl/Tk、Perl、Python、Ruby、PHP、Lua などのスクリプト言語や、Java、C#、Scheme、Ocaml」
と書かれているんですよね。
こいつさえ、上手くやってしまえば上記の言語でDXライブラリを動かせてしまうという話。
で、結果的には3d以外のリファレンスに乗っているものは7割がたできたってとこでしょうか。
構造体になっているものや、引数に「...」が渡っているものはどういう意味なのかわからんので
コメントアウトしてもらいました。
各関数にSwigっていう文字列くっつけてラッパーにして作りました。
(公開されているDXライブラリのソースから作成しようと思ったが上手くできんかったので。。。)
なので、今僕の手元にあるファイルでは下記にようにして動かせる。
use strict;
use lib 'C:/mywork/PerlProgram/GameProg';
use DxLib;
my $dx = DxLib::SwigDxLib->new();
$dx->SwigChangeWindowMode(1);
$dx->SwigDxLib_Init();
$dx->SwigLoadGraphScreen(50, 100, "00.png", 1);
$dx->SwigWaitKey();
$dx->SwigDxLib_End();
想像したとおり。
ゲームプログラミングの館に書かれているようになります。
現状は、作成したラッパー作成スクリプトは中途半端だし
一部仕組みがわからん面があるので、ぼちぼち進めてく感じ。
需要があれば、swigの使い方と作成したファイルを公開しますっていう。
需要あるんかな?
※てか、誰か作ったら公開してくれー