#=========================================================================== # ◆ A1 Scripts ◆ # 文字ピクチャ(RGSS3) # # バージョン : 1.01 (2012/01/24) # 作者 : A1 # URL     : http://a1tktk.web.fc2.com/ #--------------------------------------------------------------------------- # 機能: # ・「ピクチャの表示」「ピクチャの移動」などで扱える文字を作成します #--------------------------------------------------------------------------- # 更新履歴   :2012/01/11 Ver1.00 リリース # :2012/01/24 Ver1.01 文字ピクチャを消す際に起こる不具合を修正 #--------------------------------------------------------------------------- # 設置場所 # A1共通スクリプト以下 # # 必要スクリプト # A1共通スクリプトVer4.00以上 #--------------------------------------------------------------------------- # 使い方 # イベントコマンド「注釈」に記述 # # 文字ピクチャ text,size,[params] # # text :表示する文字列 # size :表示する文字列のフォントサイズ 省略時には 24 になります # # params:フォントに付与したいパラメータをカンマ区切りで並べます(順不同) # 省略時には各パラメータの初期値になります # # 太字 文字を太字にします # イタリック 文字をイタリックにします # 縁なし 文字を縁なしにします # 影つき 文字に影をつけます # [色,r,g,b,a] 文字の色を指定します a(透明度) は省略可 # [縁色,r,g,b,a] 文字の縁の色を指定します a(透明度) は省略可 # [フォント名,name] 文字のフォントを指定します # # 「注釈」コマンドで文字ピクチャを作成したら # 続く「ピクチャの表示」イベントコマンドで表示します # 「ピクチャの表示」イベントコマンドではピクチャを指定する必要はありません #============================================================================== $imported ||= {} $imported["A1_TextPicture"] = true if $imported["A1_Common_Script"] old_common_script("文字ピクチャ", "4.00") if common_version < 4.00 #============================================================================== # ■ Game_Picture #------------------------------------------------------------------------------ #  ピクチャを扱うクラスです。このクラスは Game_Pictures クラスの内部で、特定 # の番号のピクチャが必要になったときだけ作成されます。 #============================================================================== class Game_Picture #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :text attr_accessor :font #-------------------------------------------------------------------------- # ☆ 基本変数の初期化 #-------------------------------------------------------------------------- alias a1_text_picture_gp_init_basic init_basic def init_basic a1_text_picture_gp_init_basic init_text_mode end #-------------------------------------------------------------------------- # ○ テキストモードの初期化 #-------------------------------------------------------------------------- def init_text_mode @text_key = nil @font = nil @text = nil end #-------------------------------------------------------------------------- # ☆ ピクチャの消去 #-------------------------------------------------------------------------- alias a1_text_picture_gp_erase erase def erase a1_text_picture_gp_erase init_text_mode end end #============================================================================== # ■ Sprite_Picture #------------------------------------------------------------------------------ #  ピクチャ表示用のスプライトです。Game_Picture クラスのインスタンスを監視し、 # スプライトの状態を自動的に変化させます。 #============================================================================== class Sprite_Picture < Sprite #-------------------------------------------------------------------------- # ☆ 転送元ビットマップの更新 #-------------------------------------------------------------------------- alias a1_text_picture_sp_update_bitmap update_bitmap def update_bitmap return a1_text_picture_sp_update_bitmap unless @picture.text self.bitmap = Cache.text_picture(@picture.text, @picture.font) end end #============================================================================== # ■ A1_System::CommonModule #============================================================================== class A1_System::CommonModule #-------------------------------------------------------------------------- # ☆ 注釈コマンド定義 #-------------------------------------------------------------------------- alias a1_text_picture_command_define_command define_command def define_command a1_text_picture_command_define_command @cmd_108["文字ピクチャ"] = :text_picture end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ☆ ピクチャの表示 #-------------------------------------------------------------------------- alias a1_text_picture_command_command_231 command_231 def command_231 screen.pictures[@params[0]].text = @params[10] screen.pictures[@params[0]].font = @params[11] a1_text_picture_command_command_231 end #-------------------------------------------------------------------------- # ○ 文字ピクチャ #-------------------------------------------------------------------------- def text_picture(params) return if next_event_code != 231 || !params[0] font = Font.new size = params[1].to_i if params[1] font.size = size > 96 ? 96 : size if size params[2].each {|param| setup_font(param, font)} if params[2].is_a?(Array) text_bitmap = Cache.text_picture(params[0], font) @list[@index + 1].parameters[10] = params[0] @list[@index + 1].parameters[11] = font end #-------------------------------------------------------------------------- # ○ フォントのセットアップ #-------------------------------------------------------------------------- def setup_font(param, font) font.bold = true if param == "太字" font.italic = true if param == "イタリック" font.outline = false if param == "縁なし" font.shadow = true if param == "影つき" font.name = param[1] if param.is_a?(Array) && param[0] == "フォント名" font.color = setup_color(param) if param.is_a?(Array) && param[0] == "色" font.out_color = setup_color(param) if param.is_a?(Array) && param[0] == "縁色" end #-------------------------------------------------------------------------- # ○ フォントカラーのセットアップ #-------------------------------------------------------------------------- def setup_color(params) r = params[1].to_i g = params[2].to_i b = params[3].to_i a = params[4].to_i if params[4] return Color.new(r, g, b) unless a return Color.new(r, g, b, a) end end end