Project1

标题: 关于文字显示速度的问题 [打印本页]

作者: shadowearl1    时间: 2016-3-31 12:26
标题: 关于文字显示速度的问题
刚刚用了喵呜喵5大神的文字显示速度控制脚本,但是碰到了问题。
即使把指定的变量设置到1,文字显示速度也非常慢(相当于范例中设置为30的速度),设置为0后就变成瞬间显示了。
请问这会是什么问题呢?

RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3.   文字显示速度控制 By喵呜喵5
  4. ===============================================================================
  5.  
  6. 【说明】
  7.  
  8.   1、通过一个变量控制显示文字的速度
  9.  
  10.   2、通过一个按键来快进对话(可能与其他脚本存在冲突)
  11.  
  12.   3、对话中自由停顿指定时长
  13.  
  14. 【说明】
  15.  
  16.   关于自由停顿:
  17.  
  18.   使用转义字符\w[x]对话将停顿x帧,停顿过程中可以按键跳过停顿
  19.  
  20.   使用转义字符\nw[x]对话将停顿x帧,无法跳过停顿
  21.  
  22. =end
  23. $m5script ||= {};$m5script[:M5MT20131130] = 20141218
  24. module M5MT20131130
  25. #==============================================================================
  26. #  设定部分
  27. #==============================================================================
  28.  
  29.   SPE = 15
  30.  
  31.   # 在这里设置控制对话速度的变量ID
  32.  
  33.   BUT = :CTRL
  34.  
  35.   # 在这里设置快进对话的按键
  36.  
  37.     SWI = 0
  38.  
  39.     # 当对应ID的开关打开时,不使用快进对话按键的功能
  40.  
  41.     OFF = false
  42.  
  43.     # 设置为 true 时,快进对话按键功能将被关闭
  44.     # 当快进对话按键功能与其他脚本发生冲突时,
  45.     # 请尝试将这里设置成 true 并将本脚本放在冲突脚本之下
  46.  
  47. #==============================================================================
  48. #  设定结束
  49. #==============================================================================
  50.   def self.button_off
  51.     OFF || $game_switches[SWI]
  52.   end
  53. end
  54. class Window_Message
  55.   alias m5_wait_for_one_character wait_for_one_character
  56.   def wait_for_one_character
  57.     [$game_variables[M5MT20131130::SPE], 0].max.times do |i|
  58.       m5_wait_for_one_character
  59.     end
  60.   end
  61.   alias m5_20131130_process_escape_character process_escape_character
  62.   def process_escape_character(code, text, pos)
  63.     case code.upcase
  64.     when 'W'
  65.       [obtain_escape_param(text),0].max.times do |i|
  66.         update_show_fast
  67.         Fiber.yield unless @show_fast || @line_show_fast
  68.       end
  69.     when 'NW'
  70.       ([obtain_escape_param(text),0].max).times { Fiber.yield }
  71.     else
  72.       m5_20131130_process_escape_character(code, text, pos)
  73.     end
  74.   end
  75.   alias m5_20131130_update_show_fast update_show_fast
  76.   def update_show_fast
  77.     m5_20131130_update_show_fast
  78.     return if M5MT20131130.button_off
  79.     @show_fast = @show_fast || Input.press?(M5MT20131130::BUT)
  80.   end
  81.   alias m5_20141218_wait wait
  82.   def m5_20141218_wait(duration)
  83.     return m5_20141218_wait if M5MT20131130.button_off
  84.     [duration,0].max.times do |i|
  85.       Fiber.yield unless Input.press?(M5MT20131130::BUT)
  86.     end
  87.   end
  88.   alias m5_20141218_input_pause input_pause
  89.   def input_pause
  90.     return m5_20141218_input_pause if M5MT20131130.button_off
  91.     self.pause = true
  92.     wait(10)
  93.     Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)||\
  94.       Input.press?(M5MT20131130::BUT)
  95.     Input.update
  96.     self.pause = false
  97.   end
  98. end

作者: cinderelmini    时间: 2016-3-31 12:38
本帖最后由 cinderelmini 于 2016-3-31 12:41 编辑

似乎代码框81~87行要改成:
  1. alias m5_20141218_wait wait
  2.   def wait(duration)
  3.     return m5_20141218_wait(duration) if M5MT20131130.button_off
  4.     [duration,0].max.times do |i|
  5.       Fiber.yield unless Input.press?(M5MT20131130::BUT)
  6.     end
  7.   end
复制代码
嘛……也许M5这样做也有原因的……
窝只是猜猜……
作者: shadowearl1    时间: 2016-3-31 13:00
cinderelmini 发表于 2016-3-31 12:38
似乎代码框81~87行要改成:嘛……也许M5这样做也有原因的……
窝只是猜猜…… ...

呃,好像还是没有效果……
作者: 喵呜喵5    时间: 2016-3-31 13:34
shadowearl1 发表于 2016-3-31 13:00
呃,好像还是没有效果……

脚本页面附带有范例工程,下载下来试试看是否能够使用
作者: shadowearl1    时间: 2016-3-31 18:43
喵呜喵5 发表于 2016-3-31 13:34
脚本页面附带有范例工程,下载下来试试看是否能够使用

新开工程就能用,但是原来那个工程用了很多其他的脚本,但也不报错,就是显示速度有问题




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1