赞 | 13 |
VIP | 118 |
好人卡 | 28 |
积分 | 12 |
经验 | 35779 |
最后登录 | 2017-7-6 |
在线时间 | 1564 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1175
- 在线时间
- 1564 小时
- 注册时间
- 2008-7-30
- 帖子
- 4418
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 DeathKing 于 2010-12-11 17:48 编辑
实现类似于古书的效果,请合理使用,否则会出现下方的悲情效果。
- #===============================================================================
- # ■ 标签窗体
- # LabelWindow
- #-------------------------------------------------------------------------------
- # 提供给脚本开发者,一个用于创建图文结合的标签窗体的脚本。
- #
- # * 使用方法:
- # obj = Window_Lable.new(x, y, w, h, text, icon)
- #
- # * 注意事项
- # ① 字体属性一旦被改变就会刷新;
- # ② 字体属性的 setter 不负责检查参数。
- #-------------------------------------------------------------------------------
- # 更新作者: DeathKing
- # 许可协议: FSL
- # 项目版本: 1.1.1211
- # 引用网址:
- #-------------------------------------------------------------------------------
- # - 1.1.1211 By DeathKing
- # * 修正了 font_name= 方法的错误;
- #
- # - 1.0.1031 By DeathKing
- # * 初版;
- #
- #===============================================================================
- $fscript = {} if $fscript == nil
- $fscript["LabelWindow"] = "1.1.1211"
-
- #-------------------------------------------------------------------------------
- # ▼ 通用配置模块
- #-------------------------------------------------------------------------------
-
- module FSL
- module LabelWindow
- DEFAULT_FONT = "黑体"
- DEFAULT_SIZE = 22
- DEFAULT_COLOR = Color.new(255, 255, 255, 255)
- DEFAULT_ITALIC = false
- DEFAULT_BOLD = false
- end
- end
-
- #==============================================================================
- # ■ Window_Label
- #------------------------------------------------------------------------------
- # 用于创造一个类似于标签的窗口
- #==============================================================================
-
- class Window_Label < Window_Base
-
- include FSL::LabelWindow
-
- WLH = 32
-
- attr_reader :x, :y, :w, :h, :text, :icon
- attr_reader :italic, :bold, :font_name, :color, :size
-
- #--------------------------------------------------------------------------
- # ● 初始化对象
- # x : 窗体的x坐标
- # y : 窗体的y坐标
- # w : 窗体的宽度
- # h : 窗体的高度
- # text : 标签文本
- # icon : 存放在icons文件夹下的图标文件名
- #--------------------------------------------------------------------------
- def initialize(x,y,w,h,text,icon="")
- # 为实变量赋值
- @x,@y,@w,@h,@text,@icon = x,y,w,h,text,icon
- super(x,y,w,h)
- # 创建窗体
- self.contents = Bitmap.new(width - 32, height - 32)
- # 设置字体属性
- self.contents.font.name = DEFAULT_FONT
- self.contents.font.size = DEFAULT_SIZE
- self.contents.font.color = DEFAULT_COLOR
- self.contents.font.bold = DEFAULT_BOLD
- self.contents.font.italic = DEFAULT_ITALIC
- # 刷新内容
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- # 清除以前创造的位图
- self.contents.clear
- # 初始化坐标
- x,y = 0,0
- # 如果指定了图标
- if @icon != ""
- rect = Rect.new(x, y, 32, 32)
- self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
- bitmap = RPG::Cache.icon(@icon)
- opacity = self.contents.font.color == normal_color ? 255 : 128
- self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
- x = 32
- end
- # 绘制文本
- self.contents.draw_text(x,y,@text.size*32,WLH,@text)
- end #refresh
- #--------------------------------------------------------------------------
- # ● 一旦标签文本改变就刷新
- #--------------------------------------------------------------------------
- def text=(value)
- @text = value
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 一旦被指定为斜体就刷新
- #--------------------------------------------------------------------------
- def italic=(value)
- self.contents.font.italic = value
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 一旦被指定为粗体就刷新
- #--------------------------------------------------------------------------
- def bold=(value)
- self.contents.font.bold = value
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 一旦修改了字体名称就刷新
- #--------------------------------------------------------------------------
- def font_name=(value)
- self.contents.font.name = value
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 一旦修改了字体大小就刷新
- #--------------------------------------------------------------------------
- def size=(value)
- self.contents.font.size = value
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 一旦修改了字体颜色就刷新
- #--------------------------------------------------------------------------
- def color=(value)
- self.contents.font.color = value
- refresh
- end
- end
复制代码 |
|