扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 205|回复: 0

[转载发布] 【for Developer】标签窗体 悲情物一枚

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 128 天

    连续签到: 1 天

    [LV.7]常住居民III

    2358

    主题

    428

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    灌水之王

    发表于 2024-4-19 18:29:08 | 显示全部楼层 |阅读模式
    实现类似于古书的效果,请合理使用,否则会出现下方的悲情效果。
    注意!
    单纯是右边的列表,和左边的技能那些无关
    1. #===============================================================================# ■ 标签窗体#    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
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-5-4 14:49 , Processed in 0.090972 second(s), 54 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表