Project1

标题: 关于在状态窗口中显示技能 [打印本页]

作者: muyumuyulnny    时间: 2012-10-5 22:13
标题: 关于在状态窗口中显示技能
我想在状态窗口中显示该角色在1-14号技能中已经学会的技能,用了这样的写法,
  1. def draw_skill_list(x, y)
  2.     self.contents.font.color = system_color
  3.     self.contents.draw_text(x, y, 120, WLH, "技能")
  4.     for i in 1..14
  5.       @actor.skill_learn?( $data_skills[i])
  6.       draw_item_name($data_skills[i], x + 20, y + WLH * i)
  7.     end
  8.   end
复制代码
可是这样的话如果中间有一个技能没学的话,就会空一行,求教正确的写法。
谢谢。
作者: Luciffer    时间: 2012-10-7 20:48
不要做成每个输出一次,而是加判定,如果没有学会就不输出值跳转下一个继续。
作者: a364774426    时间: 2012-10-8 09:59
好吧,每个人都不要,我就捡走了。
首先LZ漏掉了一个地方,在Window_Status中
  1.   def refresh
  2.     self.contents.clear
  3.     draw_actor_name(@actor, 4, 0)
  4.     draw_actor_class(@actor, 128, 0)
  5.     draw_actor_face(@actor, 8, 32)
  6.     draw_basic_info(128, 32)
  7.     draw_parameters(32, 160)
  8.     draw_exp_info(288, 32)
  9.     draw_equipments(288, 160)
  10.     draw_skill_list(0,200)       ########需要添加的。
  11.   end
复制代码
第二个地方,
  1. def draw_skill_list(x, y)
  2.     self.contents.font.color = system_color
  3.     self.contents.draw_text(x, y, 120, WLH, "技能")
  4.     for i in 1..14
  5.       @actor.skill_learn?( $data_skills[i])
  6.       draw_item_name($data_skills[i], x + 20, y + WLH * i)
  7.     end
  8.   end
复制代码
LZ你的原代码,
将这几句
  1.     for i in 1..14
  2.       @actor.skill_learn?( $data_skills[i])
  3.       draw_item_name($data_skills[i], x + 20, y + WLH * i)
  4.     end
复制代码
改成
  1.     for i in 1..14
  2.        if  @actor.skill_learn?( $data_skills[i])
  3.       draw_item_name($data_skills[i], x + 20, y + WLH * i)
  4.        end
  5.     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