Project1
标题:
关于在状态窗口中显示技能
[打印本页]
作者:
muyumuyulnny
时间:
2012-10-5 22:13
标题:
关于在状态窗口中显示技能
我想在状态窗口中显示该角色在1-14号技能中已经学会的技能,用了这样的写法,
def draw_skill_list(x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, "技能")
for i in 1..14
@actor.skill_learn?( $data_skills[i])
draw_item_name($data_skills[i], x + 20, y + WLH * i)
end
end
复制代码
可是这样的话如果中间有一个技能没学的话,就会空一行,求教正确的写法。
谢谢。
作者:
Luciffer
时间:
2012-10-7 20:48
不要做成每个输出一次,而是加判定,如果没有学会就不输出值跳转下一个继续。
作者:
a364774426
时间:
2012-10-8 09:59
好吧,每个人都不要,我就捡走了。
首先LZ漏掉了一个地方,在Window_Status中
def refresh
self.contents.clear
draw_actor_name(@actor, 4, 0)
draw_actor_class(@actor, 128, 0)
draw_actor_face(@actor, 8, 32)
draw_basic_info(128, 32)
draw_parameters(32, 160)
draw_exp_info(288, 32)
draw_equipments(288, 160)
draw_skill_list(0,200) ########需要添加的。
end
复制代码
第二个地方,
def draw_skill_list(x, y)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, "技能")
for i in 1..14
@actor.skill_learn?( $data_skills[i])
draw_item_name($data_skills[i], x + 20, y + WLH * i)
end
end
复制代码
LZ你的原代码,
将这几句
for i in 1..14
@actor.skill_learn?( $data_skills[i])
draw_item_name($data_skills[i], x + 20, y + WLH * i)
end
复制代码
改成
for i in 1..14
if @actor.skill_learn?( $data_skills[i])
draw_item_name($data_skills[i], x + 20, y + WLH * i)
end
end
复制代码
这样就行了~~~
作者:
muyumuyulnny
时间:
2012-10-9 21:42
a364774426 发表于 2012-10-8 09:59
好吧,每个人都不要,我就捡走了。
首先LZ漏掉了一个地方,在Window_Status中第二个地方,LZ你的原代码,
...
您说的那个def refresh的地方我是加了的,只是跟问题没关系就没写。
嗯,按您说的改了之后的确还会有空行,不过还是谢谢您的解答。{:2_249:}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1