Javaでオープンタイプフォント

というわけで、全く解決方法が見つからない、Javaでオープンタイプフォントを使用する方法。

一応おさらいしておくと、実行環境から、オープンタイプフォントをリストアップすることもできるし、
それで、createFont() することもできる。

でも、drawString("あいうえお")で表示すると、

b0163324_013675.png


となってしまうのだ。
標準のAPIを使用し、何もエラーが出ない。なのにコレ。
もうどうしようもないわ。

これを回避するには、やはりローテクを使うしかない。

多関節キャラのパーツ画像を1枚のテクスチャに敷き詰めるアルゴリズム。
先日、機能向上したが、この技術が使えそうだ。

文字1字ずつを1つのパーツとみなし、横に結合・展開してみたのが、これ。

b0163324_0155027.png


重ならずに、文字列として表示する分には、完璧だ。
あとは、横に伸びている「い」を何とかするだけ。

…と、思いがちだが、そんなに簡単ではない。
たとえば、今のままで、「ショートケーキ」を表示すると、どうなるか。

b0163324_0175286.png


ベースラインやアセントなどの、Y方向の情報がないんだから、そりゃ、こうなる。
で、ここから、ごにょごにょするとだな。

b0163324_019241.png

b0163324_0194393.png


どうよ、このできばえ!
Javaでオープンタイプフォント(OpenTypeFont)を使えたぜ!
[PR]
by miries | 2016-08-12 00:25 | ゲームを作る


<< 世の中、信じられないことがある... 解決方法がまったくわからねぇぞ... >>