赞 | 0 |
VIP | 0 |
好人卡 | 3 |
积分 | 1 |
经验 | 22133 |
最后登录 | 2021-6-21 |
在线时间 | 297 小时 |
- 梦石
- 0
- 星屑
- 105
- 在线时间
- 297 小时
- 注册时间
- 2009-1-7
- 帖子
- 216
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
- #encoding:utf-8
- #==============================================================================
- # ■ Window_Help
- #------------------------------------------------------------------------------
- # 显示特技和物品等的说明、以及角色状态的窗口
- #==============================================================================
- class Window_Help < Window_Base
- #--------------------------------------------------------------------------
- # ● 设置内容(窗口宽度为516,文字内容超过则自动换行)
- # 字符串下标从0开始 到 长度 - 1
- # 通过text_size(text).width获取指定文本的显示宽度
- #--------------------------------------------------------------------------
- def set_text(text)
- tmp = "";#最终拼凑而成的文本
- bool = false;#记录是否曾经换行,如果已经换行则不再进行二次换行,因为只有2行
- if text != @text#如果已经在显示的文本不和新的文本一致,则进行设置
- l = text.length - 1;#获取新文本的长度,并减去1用来循环迭代
- for i in 0..l do#进行循环,对字符串的每一个字符进行迭代
- if text[i] != "\r" and text[i] != "\n" then#跳过文本中的换行符和回车符
- if !bool then#如果没有进行过换行才进行计算
- tmpw = text_size(tmp).width;#已经处理好的字符串的宽度
- textw = text_size(text[i]).width;#下一个字符的宽度
- w = tmpw + textw;#新的字符串总宽度
- if w <= 516 then#如果文本的宽度没有超过516,还能显示下一个字符
- tmp = tmp + text[i];#进行追加
- else#如果已经显示不下
- tmp = tmp + "\r" + "\n" + text[i];#进行换行后追加
- bool = true;#表示已经换过行了
- end
- else#如果已经换过行了。
- tmp = tmp + text[i];#进行追加
- end
- end
- end
- @text = tmp;#返回结果
- refresh#进行刷新
- end
- end
- end
复制代码 无论描述的内容是否有换行,都会强制这么转换 |
|