SDLUdon Advent HitoriSumotori 5

4日目の記事はudnonkobillyさんによる http://d.hatena.ne.jp/udonkobilly/20131204 でした!
…ただでさえ、この一行目で毎度心を削るというのに、暗黙的に見過ごすのがこの季節欠かせないハートウォーマーの努めですよ。Heart to_ary!
さて、今回は文字の描画です。さくっとコードさくっと解説で一息付けるかと思いきや、またギリギリ増しで突貫ねじ込みに。
自前でのキャッシュ管理が増えて来て、いよいよメモリリークおばさんのバーゲンセールが恐くなって参りました。

Font
font = Font.new(font_name, font_size)

Fontは画面に文字を描画する際に必要となる、フォント(MSゴシック等)情報を格納するためのクラスです。
インスタンスを生成(new)するための引数には、最初に「.ttfフォント」のファイル名をフルネームで、次にフォントのサイズを指定します。
web上で配布されているものなどを使う場合は、実行ファイルと同じ場所に(.ttfを)置けばフルネーム指定でそのまま読み込まれます。
ダウンロードファイルに「migmix-1m-regular.ttf」を同封させて頂いているので、そちらでもお試し下さいませ。

Screen#draw_text
# draw_text(message, x, y, font, color=[255,255,255,255]

font = Font.new("migmix-1m-regular.ttf", 32)
Game.loop(title: "Draw Text Sample!", fps: 30) { |game|
	game.screen.draw_text("Go West!", 200, 200, font)
}

draw_textメソッドを使って文字を描画します。引数はそれぞれ、「 描画文字列 , X座標 , Y座標 , フォント(font) , 文字色(配列) 」となり、
[ font ]は第四引数に渡すことになります。文字色は配列で指定し、0-255までの数値を[ 赤 , 緑 , 青 , 透明度 ]に対応した成分として設定します。
なお、文字色は省略する事も一応可能、その際は白色になります。


慌てすぎて問題・制限が多すぎる状態なので、またどっかり修正・強化して後日。