DJGL-フォントについて

外部フォントの使用


ゲームを作成するときJavaの標準のフォントを使うと、見た目が非常にダサくなりやすい。
そのため、多くの場合は外部フォントがよく使われる。
このページでは外部フォントの使い方について記述する。

外部フォントを用意

フォントファイルの拡張子は、ttfやotfなどが挙げられるが、Javaの場合ttfが確実なので
ここではtegaki.ttfというフォントファイルを例に解説を進める。
フォントファイルの入手の手段には、フリーフォントをダウンロードしてくる、自作するなどが挙げられる。
以下のサイトでは、漢字にはほとんど対応していないが、比較的簡単にフォントを作成できる。
http://www.paintfont.com/

解説に使用するtegaki.ttfもここに置いておく。
tegaki.ttf
(このフォントは解説用なので0~9の数字しかない)

導入

JavaにはFontというクラスがあるのでこれを使っていく。
srcの下にtegaki.ttfがあるとき以下のように記述することでフォントを使用できる。



  1. import java.awt.Color;
  2. import java.awt.Font;
  3. import java.awt.FontFormatException;
  4. import java.awt.GraphicsEnvironment;
  5. import java.io.IOException;
  6.  
  7. import densan.s.game.drawing.Drawer;
  8. import densan.s.game.manager.GameManager;
  9. import densan.s.game.manager.Updatable;
  10.  
  11.  
  12. public class FontTest implements Updatable{
  13. /**
  14. * フォントを保存する参照型変数
  15. */
  16. private Font tegakiFont;
  17.  
  18. private int counter = 0;
  19.  
  20. private FontTest(){
  21. //各種例外を投げる事があるのでtry-catch文を使う
  22. try {
  23. //ここでフォントを作成
  24. tegakiFont = Font.createFont(Font.TRUETYPE_FONT,
  25. FontTest.class.getClassLoader().getResourceAsStream("tegaki.ttf"));
  26. } catch (FontFormatException e) {
  27. e.printStackTrace();
  28. } catch (IOException e) {
  29. e.printStackTrace();
  30. }
  31. //そのままだと見えないぐらい小さいので適当なサイズに変更
  32. tegakiFont = tegakiFont.deriveFont(60.0f);
  33. }
  34.  
  35. @Override
  36. public void update() {
  37. counter++;
  38. }
  39.  
  40. @Override
  41. public void draw(Drawer d) {
  42. d.setFont(tegakiFont);
  43. d.setColor(Color.BLACK);
  44. d.drawStringCenter(Integer.toString(counter % 120), 320, 240);
  45.  
  46. }
  47.  
  48. public static void main(String[] args) {
  49. GameManager gm = GameManager.getInstance();
  50. gm.createFrame(640, 480, "FontTest");
  51. gm.setUpdatable(new FontTest());
  52. }
  53. }
  54.  


このソースコードをコンパイルして実行した結果を下に示す。

まとめ


外部フォントをタイトル画面などで使用することで、フォントの出来によってはかなり見栄えが良くなるはず。

名前:
コメント:

すべてのコメントを見る

添付ファイル