查看: 2032|回复: 0

快进对话

[复制链接]

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-9-21 20:09:31 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 taroxd 于 2015-2-9 15:50 编辑

[pre lang="ruby" line="1"]

#----------------------------------------------------------------------------
# ● 快进对话
#----------------------------------------------------------------------------

module Taroxd::FastMessage

  KEY = :CTRL      # 按此键快进对话
  ENABLED = $TEST  # true: 启用; $TEST: 仅测试模式; false: 不启用
  SPEED = 3        # 文字快进速度。可以为小数,但不能小于 1。

  @counter = 0

  # 是否在输出一个字符后等待。show_fast: 是否快进
  def self.wait?(show_fast)
    !show_fast && !Input.press?(KEY) || (@counter += 1) % SPEED < 1
  end

  # 已经进入等待输入的情况下,是否继续等待输入
  def self.keep_pause?
    [:B, :C, KEY].none? { |k| Input.trigger?(k) }
  end

  # 尚未进入等待输入的情况下,是否跳过等待输入
  def self.skip_pause?
    Input.press?(KEY)
  end
end

class Window_Message < Window_Base

  FastMessage = Taroxd::FastMessage

  def input_pause
    return if FastMessage.skip_pause?
    self.pause = true
    wait(10)
    Fiber.yield while FastMessage.keep_pause?
    Input.update
    self.pause = false
  end

  def wait_for_one_character
    update_show_fast
    Fiber.yield if FastMessage.wait?(@show_fast || @line_show_fast)
  end
end if Taroxd::FastMessage::ENABLED
[/pre]

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

在本发帖返回顶部