#============================================================================== # ◎ Window_MapVar #------------------------------------------------------------------------------ # ◎ 地图右下显示变量窗口 #------------------------------------------------------------------------------ # 制作者:绿梨子红苹果 # 个人主页:vbgm.9126.com # E-Mail:[email protected] # QQ:42378361 #==============================================================================
class Window_MapVar < Window_Base #-------------------------------------------------------------------------- # ● 初始化窗口 #-------------------------------------------------------------------------- def initialize # 在这里设定窗口的位置啦(x,y,宽,高),记住要为窗口框架留上下左右各16象素。 # 默认一个字符的宽和高只有20左右的,这里单位为“金”,加上8位数字。 super(480,420,160,60) # 窗口的不透明度(0 ~ 255)。范围外的数值会自动修正。 # 注:255为不透明,0为完全透明……这个参数为零则只显示窗口内容而没有窗口, # 实际上这样做不如不载入窗口背景图,更加节约内存……不过比较麻烦就是。 self.opacity=64 # 窗口背景的不透明度(0 ~ 255)。范围外的数值会自动修正。 # 注:就是窗口那个蓝色的背景啦……受上面参数影响 self.back_opacity=128 # 窗口内容的不透明度(0 ~ 255)。范围外的数值会自动修正。 # 注:窗口内的文字等内容,除非你是想画个空窗口,否则千万不要设0。 self.contents_opacity=255
# 这个不用管他,必定要写的 self.contents = Bitmap.new(width - 32, height - 32) # 建立记录变量原始值,用于判断变量值是否改变,一定要保证不会是变量原来的值 @var_value_old = -1 # 载入想要显示的图片就可以了,这里推荐是24*24的标准RM图标 @var_icon = Bitmap.new("Graphics/Icons/035-Item04") refresh end #-------------------------------------------------------------------------- # ● 刷新 #-------------------------------------------------------------------------- def refresh # 在这里加上判断语句,就可以完成变量值改变才刷新的效果,节约资源 if @var_value_old==$game_party.gold then return end # 先清空内容啦 self.contents.clear # 计算系统data里金钱单位的字符宽度 cx = contents.text_size($data_system.words.gold).width # 设定字色为白色。生成RGB颜色参数(红,绿,蓝),这个不用我来说吧... self.contents.font.color = Color.new(255,255,255) # 绘制金钱数字。记住要用“.to_s”将数字转换为字符! # 注:这里24是留着画24*24图标的,104表示所有字符总宽 self.contents.draw_text(24, 0, 104-cx, 28, $game_party.gold.to_s, 2) # 设定字色为金色 self.contents.font.color = Color.new(255,255,0) # 绘制金钱单位。 # 注:128=160(窗口宽)-32 self.contents.draw_text(128-cx, 0, cx, 28, $data_system.words.gold) # 最后画上需要的图标就可以啦,blt方法详见RM帮助文档啦... self.contents.blt(0, 2, @var_icon, Rect.new(0, 0, 24, 24)) end end |