module Cache
# 图片路径
def self.equip_image(filename)
load_bitmap("Graphics/System/EquipImage/", filename)
end
end
# 更新图片窗口通用的方法
module Equip_Image_Window
attr_accessor :image_window
# 设置图片窗口绘制的物品
def update_help
super
@image_window.set_item(item)
end
end
# 大图片窗口类
class Window_Equip_Image < Window_Base
def set_item(item)
if item != @item
@item = item
refresh
end
end
def refresh
contents.clear
draw_image(@item)
end
# 绘制图片
def draw_image(item)
return unless item
#正则匹配一下备注栏,获取备注的文件名,或者你也可以改成直接用
#装备名字来命名大图的文件名: image = item.name
image = $1 if item.note =~ /<image[: ](.+)>/i
return unless image
bitmap = Cache.equip_image(image)
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
contents.blt(0, 0, bitmap, rect)
bitmap.dispose
end
end
class Scene_Equip < Scene_MenuBase
alias vip_20161115_start start
def start
vip_20161115_start
create_equipImage_window
end
# 生成大图片窗口
def create_equipImage_window
width = height = @item_window.height
@item_window.width -= width
@item_window.create_contents # 改了大小所以重制一下画布
x, y = @item_window.width, @item_window.y
@equipImage_window = Window_Equip_Image.new(x, y, width, height)
@slot_window.extend Equip_Image_Window #引入更新图片窗口通用的方法
@item_window.extend Equip_Image_Window #引入更新图片窗口通用的方法
@slot_window.image_window = @equipImage_window
@item_window.image_window = @equipImage_window
end
end