ページ 11

ノベルゲームで台詞に英語と日本語が混ざっているときの判別

Posted: 2013年11月08日(金) 15:29
by Der
ノベルゲームを作ろうと思っているのですが、例えば"abcdeあいうえお"みたいな文章を1文字ずつ描画するとき、
英語と日本語ではバイト数が違うらしいので、それを判別して参照バイト数を進めなければならないらしいです。
調べた結果、SHIFT_JISの文章なら1バイト目で判別はできるらしいですが、
"今時SHIFT_JISでプログラム組んだりしないよね"みたいな記事もあったりして不安です。
他にも、環境によって3バイト文字があったりするらしいし、どうするのが正解か分かりません。
何か情報があれば教えて下さい。

Re: ノベルゲームで台詞に英語と日本語が混ざっているときの判別

Posted: 2013年11月08日(金) 16:06
by h2so5
正解といったものはないですが、Windows環境でDXライブラリを利用するのであれば、
文字セットをUnicodeにしてUTF-16を利用するのが便利だとおもいます。

これなら英語でも日本語でも2バイトで統一されるので計算が楽です。
(一部の漢字は4バイトになるようですが)

Re: ノベルゲームで台詞に英語と日本語が混ざっているときの判別

Posted: 2013年11月08日(金) 17:46
by ISLe
Shift_JISとUTF-8のバイト列を直接処理するものなら、わたしのブログでサンプルコードを公開しています。

ノベルゲーム風に一文字ずつ表示する:ISLeのビデオゲーム工房 ※Shift_JIS/DXライブラリ版/禁則および改行機能付き
ノベルゲーム風に一文字ずつ表示する【UTF-8/DXライブラリ版】:ISLeのビデオゲーム工房 ※禁則および改行機能付き
参照する際には、前後の記事も合わせて読んでください。

入力データとしてShift_JISを使うことはいまでも少なくはないと思いますけど。