■ 作品&サポート |
サウンドノベルプレーヤー のべ〜る |
■トラブルとか対策とか質問とか 04) データをLOADすると文字化けが発生する 【症状】 途中まで実行してSAVEしてあったデータをLOADするときに画面の文字が化けてしまったり、文章の始まり位置がズレてしまう。 【発生のタイミング】 スクリプト(ノベルの文章)を編集して動作確認しようとするときに発生する。いったん完成してしまったスクリプトを再生するだけなら生じない。 【原因と対策】 プログラムのバグではなく、スクリプト側に問題があります。のべ〜るのシステムは、文章を「ここまで表示した」 という情報を、文章の先頭から何バイト分離れたかというメモリ内での距離で保持しています。たとえば文章の先頭から1000バイト過ぎたところでSAVEを行うと、LOAD時には1000バイト目から続きを再生するわけです。 ここで、SAVEの後でスクリプト本体を書き換えてしまうとどうなるでしょう。文章を足したり削ったり(スペースやTABなどの見えない文字も1バイトのサイズを持っています)すると、クスリプト側のサイズが変わってしまいます。この状態で古いスクリプトでSAVEしたデータをLOADしてしまうと、プログラムはSAVEデータに含まれる「1000バイト目」という情報に従って表示を再開しますが、スクリプトが編集されて現在の1000バイト目がSAVE時の1000バイト目とずれてしまった場合は、表示もそのぶんズレてはじまることになります。 対策としては、画面切り替え(#page、#g_change、#fade_in など)を過ぎて表示が正常にもどったところで再度SAVEすればデータ上の矛盾はなくなるので、それ以降の動作には影響はありません。どうしても特定の文章位置に戻りたい場合は、一時的にラベルジャンプなどを書き込んで本来SAVEしたい場所の少し前に戻って再SAVEしてもいいと思います。 |
|