draw_text_ext()でテキストエリア幅を指定するとその幅で自動的にワードラップしてくれますが、これは欧米のスペースを含む文章に限られています。日本語などの言語では文章にスペースを含まないので適切にワードラップされません。
そのことをフォーラムでちょっと話したところ、YoYoGamesのRussell氏が、欲しい機能の要望を出してくれれば機能追加を検討すると言ってくれました。
そこでですが、みなさん日本語のワードラップ機能をリクエストするとしたらどんな機能にしてほしいですか?
- テキストエリア幅を指定する
- 行の長さがテキストエリア幅に達したら単語の途中でも改行する
これで本当に最低限の日本語のワードラップにはなります。
でもできれば禁則処理をして欲しいです。
- 行頭禁則文字を指定できる
」』)}】>≫] ぁぃぅぇぉっゃゅょァィゥェォッャュョ 、。,.
- 分離禁止文字を指定できる
1,000 43/100 today
- 行末禁則文字を指定できる
「『({【<≪[
- 行末をどう処理するか指定できる
ぶら下がり、追い込み、追い出し
ここまで要望できれば理想的ですが、本格的すぎてYoYoとしては「そこまではちょっと」となりそうです……
正直、ちゃんとした禁則処理を説明することも自分には難しいです。
皆さんとしてはどんな機能にしてほしいですか?
「最低限これは実装して欲しい」というものがあったら教えて下さい。
YoYoが「それくらいだったら実装してやるよ!」と言いそうなものをまとめたいと思っています。
どんな要望を出せば、日本語ユーザーみんなに便利なものになるのか知りたいです。
なんでもご意見をください。
私が欲しい機能をまとめて要望を出しました。
聞いてもらえるといいなあ。
日本語テキストをちゃんと扱えるようになれば、日本語ユーザーも増えると思う。
違うバージョンのGameMakerをインストールできるようにしてほすぃ
これはほんとにそう思う!
お金持ちならPCを複数台持って…そんなの無理!
行頭、行末文字までやりだすとわかりにくく、他の言語の同様のルールに対応しなくちゃならないので大変かと思いますし、draw_text_ext() を日本語に対応させるだけでそこそこ大変な気がするので、まずはそこで十分な気が。
プロの現場とかでも、行頭、行末に関しては手入力というのがほとんどでしたし(機能がない場合と、よみやすさにこだわると手動改行になってしまう場合の二種類)。
公式が用意してくれるなら不要かもですが、昔作った自動改行(正確には文字列分割して、for文で draw_text() する想定) のスクリプトを添付しておきますね。
分割文字 (sep) が見つかればそれで改行 (分割) できますし、warpに文字の幅を指定すれば string_width() で文字幅を計算して改行するようにできます。