#--------------------------------------------------------------------------
# ● 生成描绘用的状态字符串
# actor : 角色
# width : 描画目标的宽度
# need_normal : [正常] 是否为必须 (true / false)
#--------------------------------------------------------------------------
def make_battler_state_text(battler, width, need_normal)
#CY 定义名为make_battler_state_text的方法。
# 获取括号的宽
brackets_width = self.contents.text_size("[]").width
#CY 先执行contents(作为窗口内容显示的位图),再对其调用text_size方法(取得
#CY 以draw_text方法描绘字符串 str 的矩形(Rect)。但是,不包含斜体的部分。)
#CY 然后再对其使用Rect类的width(矩形的宽度)方法,然后再执行它本身,最后再
#CY 把值赋给变量brackets_width。
# 生成状态名字符串
text = ""
#CY 初始化text变量等于一个空的字符串。
for i in battler.states
#CY 先计算表达式battler(battler为函数形参).states,然后针对该对象的每个单
#CY 元,执行for循环。
if $data_states[i].rating >= 1
#CY 如果对全局变量$data_states[i]调用名为rating的方法。如果值大于等于1,则执
#CY 行下一句。
#CY 注释:rating为取得优先级。
if text == ""
#CY 如果text的值等于空的字符串。则执行下一句。
text = $data_states[i].name
#CY 对全局变量$data_states [i]调用name方法,并且把值赋给变量text。
else
#CY 否则,执行下列语句(即$data_stares[i].rating的值小于1)。
new_text = text + "/" + $data_states[i].name
#CY 将变量text的值加上字符串“/”加上对$data_stares[i]执行name方法的值,
#CY 最后赋值给new_text。
text_width = self.contents.text_size(new_text).width
#CY 执行contents它本身,对其执行text_size(new_text),再对其执行width,然后
#CY 赋值给变量text_width。
if text_width > width - brackets_width
#CY 如果text_width的值大于变量width(形参)减去变量brackets_width的值。
break
#CY 跳出循环。
end
text = new_text
#CY 将new_text的值赋给text。
end
end
end
# 状态名空的字符串是 "[正常]" 的情况下
if text == ""
#CY 如果text的值为nil(""相当于没有字符串)
if need_normal
#CY 如果need_normal(形参)的值不为false或者nil的话则执行下一个语句。
text = "[正常]"
#CY 将字符串[正常]赋值给text。
end
else
# 加上括号
text = "[" + text + "]"
#CY 将字符串“[”加上变量text的值再加上“]”赋值给text。
end
# 返回完成后的文字类
return text
#CY 返回text的值
end