お知らせ掲示板 | 質問掲示板 | 不具合報告掲示板 | 機能要望掲示板 | 雑談掲示板

  新規投稿 ┃全記事一覧 ┃検索 ┃設定 ┃サポートフォーラムトップ  
248 / 387 ツリー ←次へ | 前へ→

テキスト画面中に独立した機能を持つボタンを作成したいのですが… ふなむし 2011/11/5(土) 22:50

Re:新規追加は難しい。 穂乃井 2011/11/11(金) 21:36
Re:新規追加は難しい。 ふなむし 2011/12/9(金) 18:37
Re:新規追加は難しい。 穂乃井 2011/12/10(土) 12:39
Re:新規追加は難しい。 ふなむし 2011/12/10(土) 15:10
Re:新規追加は難しい。 穂乃井 2011/12/10(土) 15:44
ご回答、ありがとうございます! ふなむし 2011/12/10(土) 17:03

Re:新規追加は難しい。
 穂乃井 WEB  - 2011/11/11(金) 21:36 -
  
どうもです。独自ボタンの追加ですが、
KTさんの説明の通りにしていただければ、ボタンを押したときに
そのラベルへジャンプされます。
ただERISの改造に関しては、
バージョン毎に ERIS 内部が少しずつ変化しているため、
バージョンアップしていくうちに ERIS 内部の大幅変更により、
改造部分の移植が難しくなってしまう可能性があることだけ、どうかご容赦ください。

それと、ボタンを押した瞬間に特定のラベルにジャンプさせることは
\GO や近日実装予定の \GOSUB を書いても実現できず、現状のβ4では
説明も難しい程度にいろいろと複雑面倒な処理が必要になります。

ただ現在β5に向けて ERIS を整理中なのですが、特定のラベルへ GO ジャンプする機能
(ただし GOSUB ジャンプはできません)を専用に実装することは
簡単にできるようになりそうなので、近日中に試験的に仮実装します。
仮実装したらここでお知らせします。

また、独自ボタンや独自画面の追加に関しては、
β5で正式機能となる予定で、ある程度簡単になると思いますので、
申し訳ないですがそれまでお待ちいただければと思います。
引用なし
パスワード

Re:新規追加は難しい。
 ふなむし  - 2011/12/9(金) 18:37 -
  
お忙しいところ、GOSUBの実装、ありがとうございます^^

早速ですが、GOSUBでサブルーチンの動きについての質問になります。

\GOSUBで指定した先の内容がテキストだった場合は、
\RETURNで正常に\GOSUBが作動した直後に遷移するのですが、

\GOSUBで指定した先の内容に
\CM.SXYZ等の命令が含まれていた場合、
サブルーチンの内容は正常に動作するのですが、
\RETURNでの戻り先が
\GOSUBが作動した直後ではなく、
\GOSUBが作動したラベルのトップになります。

意図した挙動なのか否かがわかりませんので教えていただけると助かります。


まだ実装したばかりの機能でマニュアルへの記載が先になるべきなのでしょうが、
万が一意図していない動作であるのも良くないので念の為、ご連絡しました。
時間のある時にでも確認頂ければと思います^^
引用なし
パスワード

Re:新規追加は難しい。
 穂乃井 WEB  - 2011/12/10(土) 12:39 -
  
いろいろ検証してみましたが、ちょっとこちらでは再現できませんでした。
以下のサンプルはそちらで正しく動きますでしょうか?
(ファイル名やラベル名は適当に変えてください)
もし可能であれば、再現する簡単なサンプルを頂けますでしょうか。


#SAMPLE

\BG.CMXYZ(80, -80, 080)
\BG(bg_030, , 0, 0)

あいうえお

\GOSUB(サブルーチン)

さしすせそ

\GO.TITLE


#=サブルーチン

\CM.SXYZ(-80, 80, -080, 5000)
\CM.GO

かきくけこ

\RETURN
引用なし
パスワード

Re:新規追加は難しい。
 ふなむし  - 2011/12/10(土) 15:10 -
  
お忙しい中、お早い返答ありがとうございます!
すみません、とても大事な事が抜けていたみたいです。

\GOSUBについては、正常な挙動を確認しました。
誤報告でお騒がせしてすみません><

私が確認しましたのは
\LET.IFで代入式に\GOSUBを用いた際に発生していました。

最新のダウンロードファイルで下記のコマンドが実行された際、
「あいうえお」「かきくけこ」が繰り返されるので、
\RETURNの際に#SAMPLEに戻っているかと思われます。

//------------------------------------
#SAMPLE

あいうえお

@L(1)=1
\LET.IF(@L(1)==1,\GOSUB(サンプル))

さしすせそ

\GO.TITLE

#サンプル

\CM.SXYZ(-80, 80, -080, 5000)
\CM.GO

かきくけこ

\RETURN
//------------------------------------

たびたびお手数をおかけして恐縮ですが、
確認頂ければと思います。

よろしくお願いいたしますm(。 。)m
引用なし
パスワード

Re:新規追加は難しい。
 穂乃井 WEB  - 2011/12/10(土) 15:44 -
  
//------------------------------------
#SAMPLE

あいうえお

@L(1)=1
\LET.IF(@L(1)==1,\GOSUB(サンプル))

さしすせそ

\GO.TITLE

#サンプル

\CM.SXYZ(-80, 80, -080, 5000)
\CM.GO

かきくけこ

\RETURN
//------------------------------------


なるほどそういう使い方でしたか。
見たところ、\LET.IF の使い方が間違っているようです。
マニュアルにありますが、\LET.IF の記述は

\LET.IF(条件式,代入式1,代入式2)

でして、

代入式:変数へ代入する式を記述します。

という感じなので、@A=1 などの代入式はかけますが、
\GOSUB などの命令を書くことは出来ません。


では条件を満たした場合だけ \GOSUB で飛ぶには
どうしたらいいか、ということになりますが、
まだ正式命令ではないのですがじっくり動作確認してから開放しようと思っていた
\GOSUB.IF という命令が、実は最新版の 0.455/0.06a で利用可能な状態になっていますので、
よければそちらを試してみてください。

記述の仕方は \GO.IF と同じで、

\GOSUB.IF( 条件式, ラベル1, ラベル2 )

となり、
条件式が満たされたときはラベル1へ GOSUB ジャンプし、
満たされなかったらラベル2へ GOSUB ジャンプします。

サンプルを書き直すとしたら、

//------------------------------------
#SAMPLE

あいうえお

@L(1)=1
\GOSUB.IF(@L(1)==1,サンプル)

さしすせそ

\GO.TITLE

#サンプル

\CM.SXYZ(-80, 80, -080, 5000)
\CM.GO

かきくけこ

\RETURN
//------------------------------------

このようになります。
参考になれば幸いです。
引用なし
パスワード

ご回答、ありがとうございます!
 ふなむし  - 2011/12/10(土) 17:03 -
  
なるほど、使い方が間違っているのに頑張って動いていてくれていたんですね!

>\GOSUB.IF という命令が、実は最新版の 0.455/0.06a で利用可能な状態になっていますので、
「さすが!」と口をついて出てしまいました@@
ご教示頂きました通りで正常に稼働することを確認しました。

当初に質問させて頂いた独自のボタンの件ですが、
こちらも\GOSUB.IFを使用することでどうにかなりそうです。

何度もお手間をかけさせてしまって申し訳ないです(・ω・`)
本当にありがとうございます!
引用なし
パスワード

  新規投稿 ┃全記事一覧 ┃検索 ┃設定 ┃サポートフォーラムトップ  
248 / 387 ツリー ←次へ | 前へ→
58,682
(SS)C-BOARD v3.8.1β4 is Free.