DxLib With Perl

トントン
記事: 100
登録日時: 14年前

DxLib With Perl

投稿記事 by トントン » 12年前

DixqさんがJavaでDXライブラリを動かしているようなので
じゃあ、僕も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ライブラリのソースから作成しようと思ったが上手くできんかったので。。。)
なので、今僕の手元にあるファイルでは下記にようにして動かせる。

CODE:

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の使い方と作成したファイルを公開しますっていう。
需要あるんかな?
※てか、誰か作ったら公開してくれー

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前

Re: DxLib With Perl

投稿記事 by Dixq (管理人) » 12年前

おぉ、これは面白そうな日記♪
perlでDXライブラリが使えると、文字列を多用するようなゲームが作りやすくなるんですかね?
文字列を多用するゲームってなんだろ・・・
"もじぴったん" とかでしょうか?

実行速度的な面が非常に気になります!もし日記に続編があればパフォーマンス比較等の情報を期待!

> 需要あるんかな?

私は「需要が無いなら作れ!」とか自己中な思想を持ってます。
Java版DXライブラリの館でCより簡単に大きな設計が出来ることを説けば自ずと興味を持ってくれる人はいるのではないかと・・!
しかし作ったらきちんと質問に答えて運営していく責務が生じるでしょうし、その辺は慎重にやっていきますが・・。

トントン
記事: 100
登録日時: 14年前

Re: DxLib With Perl

投稿記事 by トントン » 12年前

Dixq (管理人) さんが書きました:おぉ、これは面白そうな日記♪
perlでDXライブラリが使えると、文字列を多用するようなゲームが作りやすくなるんですかね?
文字列を多用するゲームってなんだろ・・・
"もじぴったん" とかでしょうか?

実行速度的な面が非常に気になります!もし日記に続編があればパフォーマンス比較等の情報を期待!

> 需要あるんかな?

私は「需要が無いなら作れ!」とか自己中な思想を持ってます。
Java版DXライブラリの館でCより簡単に大きな設計が出来ることを説けば自ずと興味を持ってくれる人はいるのではないかと・・!
しかし作ったらきちんと質問に答えて運営していく責務が生じるでしょうし、その辺は慎重にやっていきますが・・。
>文字列を多用するようなゲームが作りやすくなるんですかね?
まぁ、他の言語と正直あまり変わらないかとw
Perl=テキスト処理に強い
っていうのは、強力な正規表現が使えるおかげなのかなと思ったりしてます。
また、windowsだと文字コードに気をつけないといけないところがめんどくさい。。。
("もじぴったん"わからないので調べてみます。)

>Java版DXライブラリの館でCより簡単に大きな設計が出来ることを説けば自ずと興味を持ってくれる人はいるのではないかと・・!
おぉ、なるほど!スクリプト言語だと簡単にプロトタイプが作れたりテストできたりってとこでしょうか!
とりあえず、完成させて、perl、python、phpまでは動作確認しておきたいところ。。。