查看: 4286|回复: 3

[RMVA发布] 打字效果的帮助窗口

[复制链接]
梦石
0
星屑
1580
在线时间
1564 小时
注册时间
2008-7-30
回帖
4207

贵宾

发表于 2013-9-30 13:20:01 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 DeathKing 于 2013-9-30 19:33 编辑


图片较大……会加载一会儿

See it in Github:https://github.com/DeathKing/fscript

这个东西还有个好处就是可以像对话框那样处理特殊字符:

TypingHelp.png

[pre lang="ruby" line="1"]#===============================================================================
# ■ [VA] 打字效果的帮助窗口
#    [VA] TypingHelp
#-------------------------------------------------------------------------------
#    让显示物品说明的帮助窗口有打字效果
#   
#-------------------------------------------------------------------------------
#    更新作者: DeathKing
#    许可协议: FSL
#    项目版本: 1.0.0930
#    最后更新: 2013-09-30
#    引用网址:
#-------------------------------------------------------------------------------
#    如果只需要部分应用打字效果,请将下面的“覆写模式”选项设置为false,并手动为需要
#    的窗口设置为 Window_HelpEx 。这个功能只推荐高级玩家使用。
#
#-------------------------------------------------------------------------------
#    - 1.0.0930 By DeathKing
#      * 初始版本完成;
#
#===============================================================================
$fscript ||= {}
$fscript["TypingHelp"] = "1.0.0930"

#-------------------------------------------------------------------------------
# ▼ 登记FSL
#-------------------------------------------------------------------------------

module FSL
  module TypingHelp
    # 每几帧刷新一个字
    # 推荐设置:1、2、3
    TURN = 2
   
    # 覆写模式:是否用此脚本替代原有的Window_Help
    # 推荐设置:false
    OVERWRITE_WINDOW_HELP = true
   
  end
end

#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
#  显示特技和物品等的说明、以及角色状态的窗口
#==============================================================================

class Window_HelpEx < Window_Help
  
  include FSL::TypingHelp
  
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(line_number = 2)
    super
    @text = ""
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    reset_font_settings
    @text = convert_escape_characters(@text)
    @pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(@text)}
    update
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  def update
    if Graphics.frame_count % TURN == 0
      process_character(@text.slice!(0, 1), @text, @pos) unless @text.empty?
    end
  end
end

Window_Help = Window_HelpEx if FSL::TypingHelp::OVERWRITE_WINDOW_HELP
[/pre]
github_icon_vector_shape_1x.png

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更

可以吃的头衔

梦石
0
星屑
1015
在线时间
424 小时
注册时间
2010-10-17
回帖
586
发表于 2013-9-30 13:38:53 | 显示全部楼层
神奇。。代码如此短
……
回复

使用道具 举报

梦石
0
星屑
1580
在线时间
1564 小时
注册时间
2008-7-30
回帖
4207

贵宾

 楼主| 发表于 2013-9-30 15:38:53 | 显示全部楼层
fux4 发表于 2013-9-30 13:38
神奇。。代码如此短

其实你弄清Scene和Window的机理后理解这个脚本就不难了。还有,RGSS3中Window_Base新定义的几个方法尤其的好用。

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-10-1 07:09:01 | 显示全部楼层
感觉受教了
frame_count取余以及最后一句代码都是我从没想到过的…
虽然最后一句代码的原理稍微还是有点不理解不过因为会用了所以没问题!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部