Javaとフォント

「java タイピングゲーム テキスト フォント」で検索して来てくれた人がいたようで、
昔、たくさん作ってた身として、ちょっと気になる点を書いておこう。

フォントをテクスチャとして持っているのであれば、そんなに苦労しないと思うが、
システムフォントを使うと、ちと面倒。

クライアントの環境で動作するので、フォントの扱いがむずかしい。
とりあえずは、文字化けしない日本語フォントを探し出すのが最初のステップ。

端末の書体をピックアップするAPIと文字化けするかどうか調べるAPIがあるので、多分問題なくできると思う。

次の問題が、文字サイズ。
同じフォントサイズを指定しても、書体によっては、サイズが異なる場合がある。
また、プロポーショナルフォントの場合、文字幅が変わるので、ウインドウにぴったり入る文字数で区切る、とか、少々面倒なプログラムも必要になる。

あと、タイピングに必須なのが、今、どこまで表示しているか、というガイド。
書体になるべく影響されないようにするためには、文字列を2回描画すれば良い。

「あいうえお」と言う単語の、3文字目まで入力している状態なら、

「あいうえお」とグレーの文字を描き、全く同じ座標で、「あいう」という白い文字を書く。
文字列を区切ったり、連結したり…とかするよりは、このほうが早い。

この方法での問題点は、かな入力の扱い。
かな入力では、濁点もキー入力になること。
「がぎぐげご」という単語があったとして、最初に「か」を入力、その次に「゛」を入力してはじめて「が」になる。

なので、3文字目の途中の場合は、「がぎぐげご」の後に「がぎく」という文字を表示することで、表現することはできるのだが、濁点のあり/なしで、文字が大きく変わる書体とかあるんだなぁ、これが。

というわけで、書体を自由に切り替えることができる機能をつけることをオススメ。
[PR]
by miries | 2015-01-21 09:36 | デジタル系


<< Intentによる、Activ... イージングの実装 >>