別に引数の数を可変にしなくても、mov3~mov10命令みたいにすりゃいいんじゃね、と思った。省略したらデフォルトの値を使う、なんてやり方はできないけど。
試しに、文字列用のmov3~mov10を作ることを考えてみる。たしか文字列でこれらの命令は使えなかったと思うので。考えるだけなので、実装してみたら問題が出るかもしれない。 まず、増減する引数の、最大の個数を決定。とりあえずここでは10個。そしてその個数分の変数を命令用に確保する。10個なので、$0~$9まででいいだろう。 そしてgetparamで値を受け取る。mov3ならgetparam s%0,$0,$1,$2、mov10ならgetparam s%0,$0,$1,...,$9ってところか。で、%1に引数の個数を代入するか、使わない変数(mov3なら$3~$9)をクリアするか、どちらかをしておく。 そのあとメイン処理部分に飛ばす。ここはmov3~mov10の全命令において共通。for文で%1の回数分ループを回すか、ラベルとgotoでループをつくり、空文字("")だったらリターンするようにする。後者の場合、文字変数のクリアをリターン前にしてもいいかもしれない。 こんな感じで、単に処理対象が増えるだけの命令ならメインの処理部分を使いまわしできそう。ラベルとgetparamの部分はNScripterを利用して作成できると思う。
by lyricist_m
| 2007-05-15 22:48
| NScripter
|
web拍手を送る
個人サイト
検索
カテゴリ
以前の記事
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
リンク
サークル関係
NightShifts k'のBlog NScripter関係 ■ Takahashi's Web ■ Binary Heaven NScripter Scripting Factory NScripter-Tips nscrplg NS栗 Withoutlimit 永字八法 貴史たま+MEのHP 君影草工房 ※以下、更新停止中 nscr SGP -Sphere Game Production 花鳥風月 牛小屋 |
ファン申請 |
||