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
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
做个参考吧 |