#============================================================================== # 「透過文字」(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