DJGL-フォントについて

「DJGL-フォントについて」の編集履歴(バックアップ)一覧はこちら

DJGL-フォントについて - (2016/12/07 (水) 23:10:09) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

*外部フォントの使用 ---- ゲームを作成するときJavaの標準のフォントを使うと、見た目が非常にダサくなりやすい。 そのため、多くの場合は外部フォントがよく使われる。 このページでは外部フォントの使い方について記述する。 **外部フォントを用意 フォントファイルの拡張子は、ttfやotfなどが挙げられるが、Javaの場合ttfが確実なので ここではtegaki.ttfというフォントファイルを例に解説を進める。 フォントファイルの入手の手段には、フリーフォントをダウンロードしてくる、自作するなどが挙げられる。 以下のサイトでは、漢字にはほとんど対応していないが、比較的かんたんにフォントを作成できる。 [[http://www.paintfont.com/>http://www.paintfont.com/]] 解説に使用するtegaki.ttfもここに置いておく。 #ref(tegaki.ttf) (このフォントは解説用なので1~9の数字しかない) **導入 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); } @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
*外部フォントの使用 ---- ゲームを作成するときJavaの標準のフォントを使うと、見た目が非常にダサくなりやすい。 そのため、多くの場合は外部フォントがよく使われる。 このページでは外部フォントの使い方について記述する。 **外部フォントを用意 フォントファイルの拡張子は、ttfやotfなどが挙げられるが、Javaの場合ttfが確実なので ここではtegaki.ttfというフォントファイルを例に解説を進める。 フォントファイルの入手の手段には、フリーフォントをダウンロードしてくる、自作するなどが挙げられる。 以下のサイトでは、漢字にはほとんど対応していないが、比較的簡単にフォントを作成できる。 [[http://www.paintfont.com/>http://www.paintfont.com/]] 解説に使用するtegaki.ttfもここに置いておく。 #ref(tegaki.ttf) (このフォントは解説用なので1~9の数字しかない) **導入 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); } @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

表示オプション

横に並べて表示:
変化行の前後のみ表示: