2013-03-04

RGSS-制御文字で文字サイズ変更

Comment ShareLink
«RGSS一覧

メッセージの一部の文字を大きくしたり小さくしたりできたら
表現の幅がきっと広がるハズ!

メッセージで文字の色を変える、
アクターの名前を入力する、変数の値を表示する、
…などの制御文字はXPツクラーの方なら
既に知っているかと思います。

今回のRGSSは、
文字サイズの変更を制御文字で可能にします。




【今回の変更点】
・Window_Message

【スクリーンショット】



■Windows_Message

「リフレッシュ」
def refreshの下に
  self.contents.font.size = 22追加

リフレッシュでサイズを初期値に戻しておかないと、
次に文章を表示した時、初期サイズに戻りません。
デフォルト文字サイズが22なので22にしてあります。

「制御文字処理」
    :
# "\\C" を "\001" に、"\\G" を "\002" に変換
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }
text.gsub!(/\\[Mm]/) { "\003" }←普通サイズ
text.gsub!(/\\[Ss]/) { "\004" }←小サイズ
text.gsub!(/\\[Ll]/) { "\005" }←大サイズ

\Mで初期サイズ、\Sで小さいサイズ、\Lで大きいサイズに
制御文字を使って変更できるようにします。

# c に 1 文字を取得 (文字が取得できなくなるまでループ)
while ((c = text.slice!(/./m)) != nil)
…の以下、文字の描画以上に下記を挿入。

# \M の場合
if c == "\003"
 self.contents.font.size = 22(初期サイズに)
 next
end
# \S の場合
if c == "\004"
 self.contents.font.size = 16(好きなサイズに)
 next
end
# \L の場合
if c == "\005"
 self.contents.font.size = 26(好きなサイズに)
 next
end

これで\M\S\Lの制御文字で文字を各サイズに
変更する事が可能になります。
文字の大きさはそれぞれ好きな大きさに設定して下さい。




同じようなやり方で一部書体を変えたり、画像を表示させたりもできるかと思います。
制御文字もアイデア次第ですね。

category: