「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