查看: 2631|回复: 1

[已经解决] 如何使对话暂停输出?

[复制链接]
梦石
0
星屑
136
在线时间
1050 小时
注册时间
2006-5-3
回帖
602
发表于 2014-12-27 23:53:42 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 gaofei677 于 2014-12-27 23:55 编辑

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

  我想仿照下面这个写:
  [pre lang="ruby" line="1"]def input_pause
    self.pause = true
    wait(10)
    Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)
    Input.update
    self.pause = false
  end[/pre]

  我把 [pre lang="ruby" line="1"]until Input.trigger?(:B) || Input.trigger?(:C)[/pre]
  改成其他条件,但是不能用,input_pause语句放在其他地方也不能用,
  下面这个纤程每次都出问题:
  [pre lang="ruby" line="1"]def wait(duration)
    duration.times { Fiber.yield }
  end[/pre]

  我对纤程几乎完全不懂,求大家指点,如何使对话暂停?
漏夏同人
《咱的夏天》
下载地址:http://tieba.baidu.com/p/2681607456
人员招募:http://rpg.blue/thread-339747-1-1.html

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

开拓者短篇九导演组冠军

发表于 2014-12-28 00:28:12 | 显示全部楼层
本帖最后由 喵呜喵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
复制代码

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部