| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 3 |
| 经验 | |
| 最后登录 | 2026-6-16 |
| 在线时间 | 2158 小时 |
故九江太守
- 梦石
- 0
- 星屑
- 314
- 在线时间
- 2158 小时
- 注册时间
- 2012-12-5
- 回帖
- 4323
|
发表于 2013-12-11 19:15:14
|
显示全部楼层
[pre lang="ruby" line="1"] #--------------------------------------------------------------------------
# ● 生成描绘用的状态字符串
# 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.rating >= 1
#CY 如果对全局变量$data_states调用名为rating的方法。如果值大于等于1,则执
#CY 行下一句。
#CY 注释:rating为取得优先级。
if text == ""
#CY 如果text的值等于空的字符串。则执行下一句。
text = $data_states.name
#CY 对全局变量$data_states 调用name方法,并且把值赋给变量text。
else
#CY 否则,执行下列语句(即$data_stares.rating的值小于1)。
new_text = text + "/" + $data_states.name
#CY 将变量text的值加上字符串“/”加上对$data_stares执行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[/pre]
看完了注释你就明白了←_← |
评分
-
查看全部评分
|