System4.0で自動改行する
ここを読まれる方には説明する必要は無いかも知れませんが、
System4.0のメッセージは、
'メッセージが表示されます。'A; |
と、使用します。
'ここが表示されて、クリック待ち'C;'クリックされました。'R; '改行されました。'C;R; 'クリックされて改行されました。'A; |
といった具合です。
System4.0では、自動改行を行いません。そのため、
'ものすごーーーーーーーーーーーーーーーく、ながーーーーーーーーーーーーーい、メッセージが、あった場合には、メッセージ枠からはみ出して、画面に表示されなくなってしまいます。'A; |
長いメッセージは、枠からはみ出して画面に表示されません。
メッセージを区切って改行命令(R;)を入れれば良いのですが、面倒です。
微妙にメッセージを変更した時に、その下の文章を全部改行調節するとか、しんどいです。
そのため、自動改行を行うコードを作りました。
このコードを利用すると、上にあるような、長いメッセージであったとしても、
メッセージ枠に合うように改行を行ってくれます。
(注:メッセージ画像の左右の余白が異なる場合には、枠サイズを指定する必要があります)
Developed using Alicesoft System4.0
サンプルをダウンロード
ただし、実行ファイルの動作には
「まばたき」「口パク」のサンプルに上書きする
必要があります。
仕様説明
(※ 詳細な説明は、AutoReturn.jaf の説明を参照してください)
基本動作: 自動で改行します。禁則処理を行います。応用動作: クリック待ち「\r」、改行「\n」、改ページ「\t」 をメッセージ中で使用可能となります。
「\r\n」とすれば、クリック待ち改行です。準備 : [REGISTER_MESSAGE_CALLBACK]で登録した関数から、[MessageAutoReturnFunc]関数を呼び出します。
実装 : 自動改行を有効化する場所に、[MessageAutoReturn 自動改行を有効にする;]を宣言します。
スコープが存在している間、自動改行が有効になります。注意 : 動作に異常が生じても責任は取れません。
感想
今、制作中のソフトに組み込んで使ってます。これは便利。楽々です。
しかし、単語中に切られるのは困りますね…。Chasenでも組み込もうかな。
でも、そうするくらいなら、コンパイル時に、R命令を使って切った方が早いですかね。