他言語版DxLib制作記 [v0.2]

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

他言語版DxLib制作記 [v0.2]

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

前回の日記が1回目だとして。

前回は、構造体の影響で3D関係の関数を作成できなかったけど
構造体を入出力時に変換かけて、ラッパー作成して実施したら
(なんで昨日思いつかなかったんだろう。。。)
無事にMMDのモデルも読み込めました。

問題は、変換ツールの作成が面倒くさくなる事。。。

後、もう一つ解決しなければいけないのが
掲示板でも、最初わからなくて聞いた
引数省略記号が混じっている関数→「...」。
こいつの意味は理解できたが。
こいつを含んでいるラッパーをどう書けば良いか考え中。。。
誰か良い案を。。。(もしくはベストプラクティスな方法を!)

#Perlでも、DXライブラリ自体はそこまでネックになるスピードじゃないかな? (DXLib自体、Cでできてるし)
#ラッパー名にSwigがついてると実際に使うときにめんどくさい事に気づいた。。。

nil
記事: 428
登録日時: 13年前

Re: 他言語版DxLib制作記 [v0.2]

投稿記事 by nil » 12年前

Perlのことはまりよくは知らないのですが、
調べたら

CODE:

$xx = 7;
print "$xx\n";
こういうことができるのですね。

ならば、Cで言うところの可変引数は必要なく、
DrawFormatStringは実装しなくても
DrawStringのみでいいのではないでしょうか。
変数を文字列に変換するような処理はPerl自体がやってくれるようですし。

アバター
みけCAT
記事: 6734
登録日時: 14年前

Re: 他言語版DxLib制作記 [v0.2]

投稿記事 by みけCAT » 12年前

Perlにはsprintf関数があり、
(少なくとも基本的な書き方は)C言語のsprintfと同じように使えます。
(ただし出力バッファは指定せず、フォーマットした文字列が返る

だから、これを使えばいいですね。

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

Re: 他言語版DxLib制作記 [v0.2]

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

>涼雅さん
涼雅 さんが書きました:Perlのことはまりよくは知らないのですが、
調べたら

CODE:

$xx = 7;
print "$xx\n";
こういうことができるのですね。

ならば、Cで言うところの可変引数は必要なく、
DrawFormatStringは実装しなくても
DrawStringのみでいいのではないでしょうか。
変数を文字列に変換するような処理はPerl自体がやってくれるようですし。
Perlは自動で、文字列、数値を判断してくれるので便利ですね。
(もちろん、それを嫌がる人もいます。)

>DrawFormatStringは実装しなくても
>DrawStringのみでいいのではないでしょうか。
確かに書式の変換は各言語に任せても良いと言えば良いですね。
(とはいえ、Perlは良いとして他の言語はどうなるんだろう。)

アドバイスありがとうございます。
最後に編集したユーザー トントン on 2012年10月17日(水) 02:22 [ 編集 1 回目 ]

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

Re: 他言語版DxLib制作記 [v0.2]

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

>みけCATさん
みけCAT さんが書きました:Perlにはsprintf関数があり、
(少なくとも基本的な書き方は)C言語のsprintfと同じように使えます。
(ただし出力バッファは指定せず、フォーマットした文字列が返る

だから、これを使えばいいですね。
そういえば、sprintfの存在を忘れていましたね。
書式指定は各言語にお願いするとします。
ちなみに実装した後、ハックお願いします><