「DJGL-文字の描画」の編集履歴(バックアップ)一覧はこちら
DJGL-文字の描画 - (2016/09/23 (金) 00:23:56) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
*文字の描画
----
このページでは文字の描画について解説します。基本的なことは図形の描画と同じです。
まずは以下のソースコードを打ち込んでみましょう。
**
----
#highlight(linenumber,java){{
i
import java.awt.Color;
import densan.s.game.drawing.Drawer;
import densan.s.game.manager.GameManager;
import densan.s.game.manager.Updatable;
public class TestGame implements Updatable {
//初期化
public TestGame() {
// まだ使わない
}
//描画
@Override
public void draw(Drawer d) {
//色の設定
//青に
d.setColor(Color.BLUE);
//塗りつぶした四角形を描画(X座標、Y座標、幅、高さ)
d.fillRect(100, 200, 100, 200);
//色を赤に
d.setColor(Color.RED);
//円の輪郭を描画(X座標、Y座標、半径)
d.drawCircle(200, 400, 100);
//------------
//変更点開始
/////////////////
//比較用の赤線
d.drawLine(0, 50, 800, 50, 1);
//フォントサイズ指定
d.setFontSize(20);
//黒
d.setColor(Color.BLACK);
//左下座標を指定して文字を描画
d.drawString("黒文字L", 0, 50);
//中心を指定して文字を描画
d.drawStringCenter("黒文字C", 400, 50);
//右下座標を指定して文字を描画
d.drawStringRight("黒文字R", 800, 50);
//フォントサイズ指定
d.setFontSize(200);
//オレンジ
d.setColor(Color.ORANGE);
//中心に大きく描画
d.drawStringCenter("中心", 400, 300);
/////////////////
//変更点終了
//------------
}
//更新
@Override
public void update() {
// まだ使わない
}
//初期化
public static void main(String[] args) {
//ゲームを管理するクラスを取得
GameManager gm = GameManager.getInstance();
//このメソッドでウインドウを表示する
//引数はそれぞれ(幅, 高さ, タイトルバーに表示する文字)
gm.createFrame(800, 600, "テストゲーム");
//更新と描画を担うオブジェクトを設定
gm.setUpdatable(new TestGame());
}
}
}}
このコードを実行すると画像のようになります。
#ref(画像)
**解説
-Drawerについて詳しくは[[>>http://kiki33.bitbucket.org/densan/s/game/drawing/Drawer.html]]
**まとめ
----
*文字の描画
----
このページでは文字の描画について解説します。基本的なことは図形の描画と同じです。
まずは以下のソースコードを打ち込んでみましょう。
**
----
#highlight(linenumber,java){{
i
import java.awt.Color;
import densan.s.game.drawing.Drawer;
import densan.s.game.manager.GameManager;
import densan.s.game.manager.Updatable;
public class TestGame implements Updatable {
//初期化
public TestGame() {
// まだ使わない
}
//描画
@Override
public void draw(Drawer d) {
//色の設定
//青に
d.setColor(Color.BLUE);
//塗りつぶした四角形を描画(X座標、Y座標、幅、高さ)
d.fillRect(100, 200, 100, 200);
//色を赤に
d.setColor(Color.RED);
//円の輪郭を描画(X座標、Y座標、半径)
d.drawCircle(200, 400, 100);
//------------
//変更点開始
/////////////////
//比較用の赤線
d.drawLine(0, 50, 800, 50, 1);
//フォントサイズ指定
d.setFontSize(20);
//黒
d.setColor(Color.BLACK);
//左下座標を指定して文字を描画
d.drawString("黒文字L", 0, 50);
//中心を指定して文字を描画
d.drawStringCenter("黒文字C", 400, 50);
//右下座標を指定して文字を描画
d.drawStringRight("黒文字R", 800, 50);
//フォントサイズ指定
d.setFontSize(200);
//オレンジ
d.setColor(Color.ORANGE);
//中心に大きく描画
d.drawStringCenter("中心", 400, 300);
/////////////////
//変更点終了
//------------
}
//更新
@Override
public void update() {
// まだ使わない
}
//初期化
public static void main(String[] args) {
//ゲームを管理するクラスを取得
GameManager gm = GameManager.getInstance();
//このメソッドでウインドウを表示する
//引数はそれぞれ(幅, 高さ, タイトルバーに表示する文字)
gm.createFrame(800, 600, "テストゲーム");
//更新と描画を担うオブジェクトを設定
gm.setUpdatable(new TestGame());
}
}
}}
このコードを実行すると画像のようになります。
#ref(スクリーンショット 2016-09-21 20.14.10.png)
**解説
今回も書き加えたのはdrawメソッドの中身ぐらいです。(30~47)
前回説明したメソッドの詳細は省きます。
-
TODO:
フォントサイズの説明
それぞれの描画メソッドの説明
文字の座標指定についての説明
setFontの説明
-Drawerについて詳しくは[[>>http://kiki33.bitbucket.org/densan/s/game/drawing/Drawer.html]]
**まとめ
----
今回は文字描画について解説しました。こちらはゲームでも普通に使います。ただ、見た目を重視するならちゃんとしたフォントを使ったりフォントを自作したり数字とかは画像にしたりします。ただ扱いがかんたんなのでデバック出力とかに便利です。