Project1

标题: 快进对话 [打印本页]

作者: taroxd    时间: 2014-9-21 20:09
标题: 快进对话
本帖最后由 taroxd 于 2015-2-9 15:50 编辑

RUBY 代码复制
  1. #----------------------------------------------------------------------------
  2. # ● 快进对话
  3. #----------------------------------------------------------------------------
  4.  
  5. module Taroxd::FastMessage
  6.  
  7.   KEY = :CTRL      # 按此键快进对话
  8.   ENABLED = $TEST  # true: 启用; $TEST: 仅测试模式; false: 不启用
  9.   SPEED = 3        # 文字快进速度。可以为小数,但不能小于 1。
  10.  
  11.   @counter = 0
  12.  
  13.   # 是否在输出一个字符后等待。show_fast: 是否快进
  14.   def self.wait?(show_fast)
  15.     !show_fast && !Input.press?(KEY) || (@counter += 1) % SPEED < 1
  16.   end
  17.  
  18.   # 已经进入等待输入的情况下,是否继续等待输入
  19.   def self.keep_pause?
  20.     [:B, :C, KEY].none? { |k| Input.trigger?(k) }
  21.   end
  22.  
  23.   # 尚未进入等待输入的情况下,是否跳过等待输入
  24.   def self.skip_pause?
  25.     Input.press?(KEY)
  26.   end
  27. end
  28.  
  29. class Window_Message < Window_Base
  30.  
  31.   FastMessage = Taroxd::FastMessage
  32.  
  33.   def input_pause
  34.     return if FastMessage.skip_pause?
  35.     self.pause = true
  36.     wait(10)
  37.     Fiber.yield while FastMessage.keep_pause?
  38.     Input.update
  39.     self.pause = false
  40.   end
  41.  
  42.   def wait_for_one_character
  43.     update_show_fast
  44.     Fiber.yield if FastMessage.wait?(@show_fast || @line_show_fast)
  45.   end
  46. end if Taroxd::FastMessage::ENABLED






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