- 累计送礼:
- 0 个
- 累计收礼:
- 0 个
TA的每日心情 | 开心 7 天前 |
---|
签到天数: 128 天 连续签到: 1 天 [LV.7]常住居民III

管理员
  
- VIP
- 6
- 卡币
- 11519
- OK点
- 16
- 推广点
- 0
- 同能卷
- 0
- 积分
- 14333


|
实现类似于古书的效果,请合理使用,否则会出现下方的悲情效果。
- #===============================================================================# ■ 标签窗体# 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 endend#==============================================================================# ■ 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复制代码
复制代码 本帖来自P1论坛作者DeathKing,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=159793 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|