Project1

标题: 如何使对话暂停输出? [打印本页]

作者: gaofei677    时间: 2014-12-27 23:53
标题: 如何使对话暂停输出?
本帖最后由 gaofei677 于 2014-12-27 23:55 编辑

  这里说的暂停并不是指 “\!”这个方法来使对话暂停,而是在对话脚本随时能够使对话暂停,然后继续。

  我想仿照下面这个写:
  
RUBY 代码复制
  1. def input_pause
  2.     self.pause = true
  3.     wait(10)
  4.     Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)
  5.     Input.update
  6.     self.pause = false
  7.   end


  我把
RUBY 代码复制
  1. until Input.trigger?(:B) || Input.trigger?(:C)

  改成其他条件,但是不能用,input_pause语句放在其他地方也不能用,
  下面这个纤程每次都出问题:
  
RUBY 代码复制
  1. def wait(duration)
  2.     duration.times { Fiber.yield }
  3.   end


  我对纤程几乎完全不懂,求大家指点,如何使对话暂停?
作者: 喵呜喵5    时间: 2014-12-28 00:28
本帖最后由 喵呜喵5 于 2014-12-28 00:31 编辑

未测试,这个例子中每显示一个文字都会暂停等待玩家的按键

对话暂停输出同理,也就是改一下update_judge和text_continue?的具体内容而已

  1. class Window_Message
  2.   alias m5_20141228_wait_for_one_character wait_for_one_character
  3.   def wait_for_one_character
  4.     loop do
  5.       update_judge
  6.       break if text_continue?
  7.     end
  8.     m5_20141228_wait_for_one_character
  9.   end
  10.   def update_judge   
  11.     Input.update    # 玩家按键更新
  12.     Graphics.update    # 游戏画面更新
  13.     XXXXX.update    # 其他需要更新的东西进行更新
  14.     @text_continue = true if Input.press?(:A)    # 判断玩家是否按下了:A键
  15.   end
  16.   def text_continue?
  17.     # 如果玩家按下了:A键则继续对话
  18.     if @text_continue
  19.       @text_continue = false
  20.       return true
  21.     end
  22.     false
  23.   end
  24. end
复制代码





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