Project1
标题:
[难以理解的脚本]Window_Help的自动换行
[打印本页]
作者:
timiesea
时间:
2015-6-27 23:58
标题:
[难以理解的脚本]Window_Help的自动换行
#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
复制代码
无论描述的内容是否有换行,都会强制这么转换
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1