#==============================================================================
# 「透過文字」(ACE) Ver.1.1
# 製作者:奈々(なな)
# へぷたなすくろーる http://heptanas.mamagoto.com/
#
# ◇使用規約
# 使用される場合はスクリプト作成者として「奈々」を明記して下さい。
# スクリプトの改変は自由に行って頂いて構いませんが
# その場合も元のスクリプトの作成者として名前を載せて下さい。
# また配布前に必ず、ブログにある利用規約を確認して下さい。
#
#------------------------------------------------------------------------------
#
# 半透明の文字を扱える制御文字を追加します。
#
# \CC[n, alpha]
#
# nは通常の\C[n]と同じで、文字色の番号を入れます。
# alphaには0〜255の数値を入れます。(0で完全透明です。)
#
# また、半透明のアイコンを表示する制御文字も追加します。
#
# \II[n]
#
#==============================================================================
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# ゲーム中の全てのウィンドウのスーパークラスです。
#==============================================================================
#※制御文字の指針メモ
#process_escape_characterはalias出来るので、極力ここに介入。
#制御文字の引数が複数や文字列の場合はobtain_escape_paramを拡張しても
#一括処理が難しく競合リスクが高い為、process_○○_characterで個別に引数を分解。
class Window_Base < Window
#--------------------------------------------------------------------------
# ● 制御文字の処理
# code : 制御文字の本体部分(「\C[1]」なら「C」)
#--------------------------------------------------------------------------
alias n7_clear_character_process_escape_character process_escape_character
def process_escape_character(code, text, pos)
case code.upcase
when 'CC'
process_clear_character(text)
when 'II'
process_draw_icon_translucent(obtain_escape_param(text), pos)
end
n7_clear_character_process_escape_character(code, text, pos)
end
#--------------------------------------------------------------------------
# ● 透過文字の処理
#--------------------------------------------------------------------------
def process_clear_character(text)
text.slice!(/^\[(\d+)\,\s*(\d+|\-\d+)\]/)
n = $1.to_i rescue 0
a = $2.to_i rescue -1
change_color_with_alpha(text_color(n), a)
end
#--------------------------------------------------------------------------
# ● テキスト描画色の変更(アルファ値指定)
#--------------------------------------------------------------------------
def change_color_with_alpha(color, alpha = translucent_alpha)
alpha = translucent_alpha if alpha < 0
contents.font.color.set(color)
contents.font.color.alpha = alpha
end
#--------------------------------------------------------------------------
# ● 制御文字によるアイコン描画の処理(半透明)
#--------------------------------------------------------------------------
def process_draw_icon_translucent(icon_index, pos)
draw_icon(icon_index, pos[:x], pos[:y], false)
pos[:x] += 24
end
end