HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0206
まふemes命令を使った改行の仕方が分かりません><;2解決


まふ

リンク

2015/2/6(Fri) 15:47:32|NO.67290

現在、ビジュアルノベル風のゲームを作っているのですが、
text 25
emes "textfile.txt"
としたところ、textfile内に/nや\nを入れても改行してくれません...
ソースコード内にテキストファイルを入れてみるとうまくいくのですが、少し不細工のような気がしています。

そこで、テキストファイル内の文字数をカウントして、30文字以上いくと改行だとか
任意に改行できる方法を知りたいです。
どうかご教授ください。


r=25 notesel buf noteload "novel.txt" *keywait repeat stick key if(key & $10):goto *novel await 20 loop *novel c=c+1 repeat notemax noteget a,c pos (ginfo_winx-1280)/2,(ginfo_winy-720)/2 gcopy 22,0,0,1280,720 gmode 4,,,200 pos (ginfo_winx-1280)/2,(ginfo_winy-200) gcopy 4,0,0,1280,200 gmode 4,,,250 pos(ginfo_winx-1280),(ginfo_winy-230) gcopy 28,0,0,80,30 pos(ginfo_winx-1280),(ginfo_winy-230) noteget b,c+100 mes b pos (ginfo_winx-1280),(ginfo_winy-170) color $00,$00,$00 text r emes a goto *keywait loop



この記事に返信する


GENKI

リンク

2015/2/6(Fri) 20:12:33|NO.67299

> としたところ、textfile内に/nや\nを入れても改行してくれません...

\nという記述が改行として読み替えて認識されるのはHSPのスクリプト内だけです。

しかしnotegetはテキストを1行ずつしか取得できません。
そこで、novel.txt内に\nを入れるプランを採用します。

novel.txt内の改行を入れたい箇所に「\n」と入力してください。
「emes a」の直前に次の1行を入力します。
strrep a, "\\n","\n"
これでどうでしょうか?「\n」を改行に置換するわけです。
「\n」が気に入らなければなんでも構わないのでお好きなものに変更してください。


ところでNO.67290のスクリプトはこの他に致命的な問題を抱えています。

・そのままでは実行できない。
 スクリプト見る方も大変なんで、コピペすれば実行できる形のスクリプトを貼っていただけると大変助かります。
 明らかに関係ない行もたくさん残っています。明らかにデバッグの努力不足です。デバッグは関係ないところを消すとはかどりますよ。

・repeat〜loopをgotoで強制的に抜けている。
 繰り返すうちにネストが深くなりすぎていずれエラーが出ます。
 gosub、breakを使ったスクリプトで考え直してみてください。



まふ

リンク

2015/2/6(Fri) 23:04:50|NO.67302

GENKIさん、ご返答ありがとうございます。
おかげ様で解決しました!
コードを端折ったところでコピペした形にしてしまい、申し訳ないです...
それと、ネストのアドバイスもとっても参考になりました!
確かに、そのエラーはテキストファイルを最後まで読み込むと起きていたので....
今後はその方向でプログラムを組んでみます!

本当にありがとうございました!


これからは不必要な行を削除してからご質問させて頂きます><
最も、これからこのようなことがないように努力します!

もしそのときが、どうかまたお願いします><;;



ONION software Copyright 1997-2023(c) All rights reserved.