第2回 ウィンドウに文字を表示しよう!

 2008-04-10
記念すべき2回目の記事です。

今回は、ウィンドウに文字を表示させたいと思います。


ウィンドウに文字を表示するには、contentsメソッドを使用します。
これは、ウィンドウ内容として表示するビットマップ (Bitmap) への参照をするものです。
そして、文字の描画はBitmapクラスのdraw_textを使用します。
つまり、文字は画像だということですね。

では、前回と同じようにイベントコマンドのスクリプトへ記述してください。
# ウィンドウを作成
win = Window_Base.new(150, 100, 244, 216)
# 文字を描画
win.contents.draw_text(0, 0, 212, 24, "文字")
# 2秒間待つ
120.times do Graphics.update end
# ウィンドウを消去
win.dispose
では、実行してみてください。
あ、スクリプトなどはコピペせずに、自分で記述したほうが上達が早いですよいや、ホントに・・・。

それじゃ、説明。
まずは、draw_textの引数について。SS200804103343.jpg
最初の4つは、ウィンドウの時と同じですね。
(x座標, y座標, 横幅, 縦幅, 描画文字)
ここで気をつけるのは、x,y座標です。
この座標は、今回作成したウィンドウ内の座標だということです。
そしてもう1つ、ウィンドウ内の幅は16pxずつ小さくなっています。
そのため、横幅と縦幅を-32したサイズが全体のサイズだと考えてください。

意外と人に説明するのって難しいね
いろいろ試して自分なりの解釈をしてください。

縦幅だけが小さいですよね?
これは、縦幅を文字の大きさに合わせているからです。
下記の例を実行するとわかると思いますが、文字は上下を空けて真ん中に表示されます。
# ウィンドウを作成
win = Window_Base.new(150, 100, 244, 216)
# 文字を描画
win.contents.draw_text(0, 0, 212, 72, "文字")
# 2秒間待つ
120.times do Graphics.update end
# ウィンドウを消去
win.dispose
ウィンドウの真ん中に文字を表示したいときは、ウィンドウの縦幅 - 32 をすればいいわけです。

さて、横の場合はどうでしょうか?
draw_text には、文字位置を調整する機能も付いています。
# ウィンドウを作成
win = Window_Base.new(150, 100, 244, 216)
# 文字を描画(中央揃え)
win.contents.draw_text(0, 0, 212, 184, "文字", 1)
# 2秒間待つ
120.times do Graphics.update end
# ウィンドウを消去
win.dispose
はい、文字がど真ん中に表示されたのではないですか?
6つ目のパラメータは、文字の位置を指しています。
0:左揃え、1:中央揃え、2:右揃え。省略するとすべて左揃えです。

消すときは win.contents.clear を実行してください。

◆ 今回のポイント
・ ウィンドウ内の描画可能範囲は、ウィンドウの横・縦幅を -32 したサイズである。
・ 文字を描画する座標の指定は、描画域のものである。
・ デフォルトでは水平位置は、左揃えである。
・ 垂直位置は、常に中央揃えである。

コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/48-4bf5c638
≪ トップページへこのページの先頭へ  ≫
カレンダー
01 << 2017/03 >> 02
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク