赞 | 14 |
VIP | 0 |
好人卡 | 0 |
积分 | 28 |
经验 | 10201 |
最后登录 | 2024-11-22 |
在线时间 | 510 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2777
- 在线时间
- 510 小时
- 注册时间
- 2012-6-17
- 帖子
- 486
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
满22个字自动换行,我直接在Window_message里这样改,判断字数,然后注释掉原来的根据换行符换行
- def update_message
- loop do
- c = @text.slice!(/./m) # 获取下一条文字
- if @cur_textnum%24 == 0#自动换行
- new_line
- if @line_count >= MAX_LINE # 行数为最大时
- unless @text.empty? # 如果还有增加则继续
- self.pause = true # 等待输入
- break
- end
- end
- end
- case c
- when nil # 没有可以显示的文字
- finish_message # 更新结束
- break
- #~ when "\x00" # 换行
- #~ new_line
- #~ if @line_count >= MAX_LINE # 行数为最大时
- #~ unless @text.empty? # 如果还有增加则继续
- #~ self.pause = true # 等待输入
- #~ break
- #~ end
- #~ end
- when "\x01" # \C[n] (更改文字色)
- @text.sub!(/\[([0-9]+)\]/, "")
- contents.font.color = text_color($1.to_i)
- next
- when "\x02" # \G (显示所持金)
- @gold_window.refresh
- @gold_window.open
- when "\x03" # \. (等待 1/4 秒)
- @wait_count = 15
- break
- when "\x04" # \| (等待 1 秒)
- @wait_count = 60
- break
- when "\x05" # \! (等待输入)
- self.pause = true
- break
- when "\x06" # \> (瞬间显示 ON)
- @line_show_fast = true
- when "\x07" # \< (瞬间显示 OFF)
- @line_show_fast = false
- when "\x08" # \^ (不等待输入)
- @pause_skip = true
- else # 普通文字
- contents.draw_text(@contents_x, @contents_y, 40, WLH, c)
- c_width = contents.text_size(c).width
- @contents_x += c_width
- @cur_textnum+=1
- end
- break unless @show_fast or @line_show_fast
- end
- end
复制代码
但有个问题,就是对话接选项时,选项的文本不换行了。我理解是系统处理文本时把对话文本和选项文本合并成一个文本,中间插入换行符。所以我这个注释换行符的办法就出错了,那我要根据什么来区分对话和选项呢
|
|