Project1
标题:
关于对话自动换行
[打印本页]
作者:
阿尔卑斯
时间:
2021-7-11 13:02
标题:
关于对话自动换行
满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
复制代码
但有个问题,就是对话接选项时,选项的文本不换行了。我理解是系统处理文本时把对话文本和选项文本合并成一个文本,中间插入换行符。所以我这个注释换行符的办法就出错了,那我要根据什么来区分对话和选项呢
QQ浏览器截图20210711130011.png
(36.55 KB, 下载次数: 21)
下载附件
保存到相册
2021-7-11 13:01 上传
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1