查看: 1555|回复: 3

[已经解决] 关于在状态窗口中显示技能

[复制链接]
梦石
0
星屑
50
在线时间
476 小时
注册时间
2011-3-22
回帖
33
发表于 2012-10-5 22:13:14 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
我想在状态窗口中显示该角色在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
复制代码
可是这样的话如果中间有一个技能没学的话,就会空一行,求教正确的写法。
谢谢。

点评

偏简单的饭菜,大家先抢吧。  发表于 2012-10-5 22:48

嗜谎者

梦石
4
星屑
19321
在线时间
4013 小时
注册时间
2010-9-12
回帖
9248

超评测评委极短28评委极短27评委MZ评测员极短26评委极短25评委极短24评委极短23评委极短22评委极短21评委开拓者

发表于 2012-10-7 20:48:45 | 显示全部楼层
不要做成每个输出一次,而是加判定,如果没有学会就不输出值跳转下一个继续。

点评

那个,我知道每次都输出会产生空行,可是不明白怎么改... ...请原谅我这个新得不能再新的新手吧。能不能给个具体的答案呢?万分感谢。  发表于 2012-10-9 21:50

评分

参与人数 2星屑 +82 收起 理由
咕噜 + 80 精品文章
怪蜀黍 + 2 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
回帖
1419
发表于 2012-10-8 09:59:17 | 显示全部楼层
好吧,每个人都不要,我就捡走了。
首先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
复制代码
这样就行了~~~

点评

嗷呜,我看错了LZ的要求  发表于 2012-10-8 14:14
嗷呜,目测如果技能没有学会的话依旧会有空行。如果skill_learn?才draw,而i每次都+1,y是每次都要加WLH * i的,这样理论上是有空行的。没测试,目测。  发表于 2012-10-8 13:40

评分

参与人数 1星屑 +200 收起 理由
咕噜 + 200 精品文章

查看全部评分

这是一个深不见底的坑,这是一个广袤无边的坑,我才刚刚放上了一抔泥土……

《六道·陈国篇》开坑了……↓点我
回复

使用道具 举报

梦石
0
星屑
50
在线时间
476 小时
注册时间
2011-3-22
回帖
33
 楼主| 发表于 2012-10-9 21:42:40 | 显示全部楼层
a364774426 发表于 2012-10-8 09:59
好吧,每个人都不要,我就捡走了。
首先LZ漏掉了一个地方,在Window_Status中第二个地方,LZ你的原代码,
...

您说的那个def refresh的地方我是加了的,只是跟问题没关系就没写。
嗯,按您说的改了之后的确还会有空行,不过还是谢谢您的解答。{:2_249:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部