#============================================================================== # ■ RPG::Cache #------------------------------------------------------------------------------ #  RPGXP の各種グラフィックを読み込み、Bitmap オブジェクトを作成、保持する # モジュールです。 #============================================================================== module RPG module Cache #-------------------------------------------------------------------------- # ● 文字キャッシュ #-------------------------------------------------------------------------- def self.text(width, height, text, color = Font.default_color, size = Font.default_size, font = Font.default_name, bold = Font.default_bold, italic = Font.default_italic) c_cache = sprintf("%06x", (color.red * 65536 + color.green * 256 + color.blue)) if @cache["txt@#{text}#{c_cache}#{size}#{font}#{bold}#{italic}"] == nil bitmap = Bitmap.new(width, height) bitmap.font.name = font bitmap.font.bold = bold bitmap.font.bold = italic bitmap.font.size = size bitmap.font.color = color bitmap.draw_text(0, 0, width, height, text, 0) @cache["txt@#{text}#{c_cache}#{size}#{font}#{bold}#{italic}"] = bitmap end return @cache["txt@#{text}#{c_cache}#{size}#{font}#{bold}#{italic}"] end def self.hemtext(width, height, text, color = Font.default_color, size = Font.default_size, hemcolor = Color.new(0, 0, 0), font = Font.default_name, bold = Font.default_bold, italic = Font.default_italic) c_cache = sprintf("%06x", (color.red * 65536 + color.green * 256 + color.blue)) h_cache = sprintf("%06x", (hemcolor.red * 65536 + hemcolor.green * 256 + hemcolor.blue)) if @cache["hemtxt@#{text}#{c_cache}#{size}#{h_cache}#{font}#{bold}#{italic}"] == nil bitmap = Bitmap.new(width, height) bitmap.font.name = font bitmap.font.bold = bold bitmap.font.bold = italic bitmap.font.color = hemcolor bitmap.font.size = size - 2 bitmap.draw_text(-1, 1, width, height, text, 0) bitmap.draw_text(-1, -1, width, height, text, 0) bitmap.draw_text(1, 1, width, height, text, 0) bitmap.draw_text(1, -1, width, height, text, 0) bitmap.font.color = color bitmap.draw_text(0, 0, width, height, text, 0) @cache["hemtxt@#{text}#{c_cache}#{size}#{h_cache}#{font}#{bold}#{italic}"] = bitmap end return @cache["hemtxt@#{text}#{c_cache}#{size}#{h_cache}#{font}#{bold}#{italic}"] end end end