外部フォントの使用
ゲームを作成するときJavaの標準のフォントを使うと、見た目が非常にダサくなりやすい。
そのため、多くの場合は外部フォントがよく使われる。
このページでは外部フォントの使い方について記述する。
外部フォントを用意
フォントファイルの拡張子は、ttfやotfなどが挙げられるが、Javaの場合ttfが確実なので
ここではtegaki.ttfというフォントファイルを例に解説を進める。
フォントファイルの入手の手段には、フリーフォントをダウンロードしてくる、自作するなどが挙げられる。
以下のサイトでは、漢字にはほとんど対応していないが、比較的簡単にフォントを作成できる。
http://www.paintfont.com/
解説に使用するtegaki.ttfもここに置いておく。
tegaki.ttf
(このフォントは解説用なので0~9の数字しかない)
導入
JavaにはFontというクラスがあるのでこれを使っていく。
srcの下にtegaki.ttfがあるとき以下のように記述することでフォントを使用できる。
import java.awt.Color;
import java.awt.Font;
import java.awt.FontFormatException;
import java.awt.GraphicsEnvironment;
import java.io.IOException;
import densan.s.game.drawing.Drawer;
import densan.s.game.manager.GameManager;
import densan.s.game.manager.Updatable;
public class FontTest implements Updatable{
/**
* フォントを保存する参照型変数
*/
private int counter = 0;
private FontTest(){
//各種例外を投げる事があるのでtry-catch文を使う
try {
//ここでフォントを作成
tegakiFont
= Font.
createFont(Font.
TRUETYPE_FONT,
FontTest.class.getClassLoader().getResourceAsStream("tegaki.ttf"));
e.printStackTrace();
e.printStackTrace();
}
//そのままだと見えないぐらい小さいので適当なサイズに変更
tegakiFont = tegakiFont.deriveFont(60.0f);
}
@Override
public void update() {
counter++;
}
@Override
public void draw(Drawer d) {
d.setFont(tegakiFont);
d.
drawStringCenter(Integer.
toString(counter
% 120),
320,
240);
}
public static void main
(String[] args
) { GameManager gm = GameManager.getInstance();
gm.createFrame(640, 480, "FontTest");
gm.setUpdatable(new FontTest());
}
}
このソースコードをコンパイルして実行した結果を下に示す。
まとめ
外部フォントをタイトル画面などで使用することで、フォントの出来によってはかなり見栄えが良くなるはず。
最終更新:2016年12月16日 14:15