defsubで自作した命令へのjump
 普通、defsubで自作した命令にgosubでジャンプすることって出来ませんよね。試したことはありませんがおそらくgetparamでつまずくんじゃないかな。セーブ・ロードのサンプルを作っていて、ふとそういうのが出来たらなと思いました。
 セーブとロードって基本的に画面構成とか処理の流れとか一緒になるじゃないですか。違ってくるのはウィンドウやらちょっとした文字列くらいのもので、セーブファイル確認してスプライト表示してボタン待ちしてってところは変わらないわけです。だったら、セーブフラグが立ってたらセーブ系の命令、立ってなかったらロード系の命令を使う、っていう風にするとすっきりするかなと。で、それをいちいちフラグ判定して0ならこっち、1ならこっちとか書いてると面倒だから、たとえばセーブ画面の初期化部分で
mov $0,"savegame2"
 みたいにしておいて、後でgosubのように呼び出せるようにするきっと楽になるんじゃないかな、と思ったのですが。でも使用する変数を固定してgosub使っても代用できるかな。ちょっと試してみます。



 余談ですが。
 先日公開した引数ライブラリを、使用する変数番号と命令名を変更して一時変数ライブラリとして、引数ライブラリと一時変数ライブラリを同時に使ってみたら、自画自賛ですがまあ使いやすいことこの上ないです。今までは、セーブで使える変数はここからここまで、クリック待ちで使えるのはここまで、という風にライブラリごとに個別に一時変数・引数用変数を確保していたので、それらがすっきりなくなるのは気持ちいいです。ただuseParamやuseTempで命令の行数が増えてしまうのが難点ですが。あとデバッグログを出すと無駄に長くなります。
[PR]
by lyricist_m | 2008-04-25 23:15 | NScripter
<< セーブ・ロードと循環バッファ CatSystem2をダウンロ... >>