スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カテゴリ : スポンサー広告

jump と call

[jump](KAGEXでは[next])とか[call]とか右クリックサブルーチンとかの話。
jumpタグ
シナリオの実行位置を変更します。
昨日のコンダクタの話でいうと「次のタグを探す」の探す位置を指定したラベルの位置に変更しています。
TJSだとkag.processを使っても同じことが出来ます。
kag.processでは[s]や次のタグがなかったなどの理由でコンダクタが止まっていた場合、コンダクタを再開する働きもします。

callタグ
基本的には[jump]と同じです。
ただし[return]タグを使うと[call]タグの位置に戻ってくることができます。
これは何をしているかというと、[call]タグを実行する時にコンダクタがその場所を記録しておきます。
そして[return]でその記録した位置にジャンプで戻り、使った記録を削除します。
なので[call]と[return]の数が合わないと、その記録情報が無かったり([return]が多い)、記録情報が使われずに残ってしまったり([return]が足りない)して困ったことになります。

右クリックでcall
[rclick]を使うと右クリックの動作を設定することができます。
jump=true のときには通常の[jump]タグと同じような動作ですが、 call=true のときには[call]とはちょっと違った動作をします。
call=true のときに右クリックされると、 storage, target 属性に指定された位置へシナリオ実行位置を変更します。
この変更には、[call]や[jump]とは異なり、通常のコンダクタ(kag.mainConductor)は使われません。通常のコンダクタは右クリックされた位置で一時停止しておいて、右クリックサブルーチン用のコンダクタ(kag.extraConductor)を使用します。
右クリック用のコンダクタの動作自体は通常のコンダクタとほぼ同じです。
[rclick]で指定された位置からシナリオ実行を開始します。そして[rclick]のcallと対応する[return]で停止して、一時停止していた通常のコンダクタの実行を再開します。

このことは普段は意識する必要はありませんが、右クリックサブルーチン内と外で使われるコンダクタが異なるために、困ることもあります。
右クリックサブルーチンから既読スキップはその例です。
スポンサーサイト

タグ : 吉里吉里 KAGEX KAG TJS

カテゴリ : TJS

コメントの投稿

非公開コメント

最新記事
カテゴリ

openclose

記事一覧
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。