*外部フォントの使用 ---- ゲームを作成するときJavaの標準のフォントを使うと、見た目が非常にダサくなりやすい。 そのため、多くの場合は外部フォントがよく使われる。 このページでは外部フォントの使い方について記述する。 **外部フォントを用意 フォントファイルの拡張子は、ttfやotfなどが挙げられるが、Javaの場合ttfが確実なので ここではtegaki.ttfというフォントファイルを例に解説を進める。 フォントファイルの入手の手段には、フリーフォントをダウンロードしてくる、自作するなどが挙げられる。 以下のサイトでは、漢字にはほとんど対応していないが、比較的かんたんに自作フォントを作成できる。 [[http://www.paintfont.com/>http://www.paintfont.com/]] **導入 JavaにはFontというクラスがあるのでこれを使っていく。 srcの下にtegaki.ttfがあるとき以下のように記述することでフォントを使用できる。 ---- //この{{}}内にソースコードを貼り付ければ行番号とJavaのハイライトが付きます #highlight(linenumber,java){{ コード貼付け用 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 Font tegakiFont; private int counter = 0; private FontTest(){ //各種例外を投げる事があるのでtry-catch文を使う try { //ここでフォントを作成 tegakiFont = Font.createFont(Font.TRUETYPE_FONT, FontTest.class.getClassLoader().getResourceAsStream("tegaki.ttf")); } catch (FontFormatException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //そのままだと見えないぐらい小さいので適当なサイズに変更 tegakiFont = tegakiFont.deriveFont(60.0f); //作成したフォントを登録 GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(tegakiFont); } @Override public void update() { counter++; } @Override public void draw(Drawer d) { d.setFont(tegakiFont); d.setColor(Color.BLACK); 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()); } } }} //「画像」と書かれているところにアップロードした画像のファイル名を入れれば画像が表示されます。 #ref(tegaki.png) **まとめ ---- ---- #comment_num2