初カキコです。
まず私の置かれている状況が特殊な為説明から入らせていただきます。
私はGamemaker studioを用いてゲームを作成しているわけではなく、Gamemaker studioで作られたゲームに対して日本語化MODを作成しています。
今現在はUnworthyと呼ばれる作品の翻訳を行っています。
大まかな手法としてはUndertaleModToolと呼ばれるツールを用いて、Fontsに日本語フォントを導入し、ゲームに実装されているGMLからテキストに該当する部分を英語のものから日本語に置き換えるという限定的作業です。そのためGMLの知識がかじった程度のものしかないため皆さんの意見をお聞きしたいと思い、こちらに質問いたしました。
今現状抱えている問題として、日本語を改行したい。現状はゲーム内で表示されるテキストの幅を計測して改行表現である"#"を挿入している。しかし作業量的に負担が大きいのでコードで自動的に改行したい。
そこで皆さんはどの様に改行されているかが知りたいです。
既にどこかで議論されてるかもですが、draw_text_ext だと最大幅を検知するwの引数は半角スペースを読み取っているため日本語には適さない。同様の仕組みをコードで記載する場合も、読点や句読点の禁足事項を回避する方法がわからないといった状況です。
すでに試しているかもしれませんがテキスト(文字列)を操作する関数がいくつかありますので参考になるかと思います。
string_posなどで句読点などの位置を把握することとかできるかと思います。
なるほど。知識が足りず初歩的な質問になってしまっていたみたいですね。
string_posでテキスト内に読点や句読点が存在し、かつそのポジションが改行処理をしたくない位置(テキストボックスの端等)に存在すれば"#"の位置を変更する処理を行う。見たいな処理ができれば可能そうですね。
似たような処理をするならstring_char_atも使えそうですね。
翻訳対象のコードを閲覧してたら"["と"]"でその処理を行う様なスクリプトが組まれてたのでそれ活用して現状は問題解決できそうです。
よかったです!