查看: 5202|回复: 3

[已经解决] 关于描绘状态的问题

[复制链接]
梦石
0
星屑
48
在线时间
841 小时
注册时间
2010-8-11
回帖
1029
发表于 2013-2-21 06:07:36 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 945127391 于 2013-2-22 22:06 编辑

好吧,我研究了好久都研究不出来= =(众:你研究过吗?!)
其实是这样的:
Window_Base有一个描绘角色状态的脚本,也就是下面这部分内容:
  1. #--------------------------------------------------------------------------
  2. # ● 绘制强化/弱化状态的图标
  3. #--------------------------------------------------------------------------
  4. def draw_actor_icons(actor, x, y, width = 96)
  5.   icons = (actor.state_icons + actor.buff_icons)[0, width / 24]
  6.   icons.each_with_index {|n, i| draw_icon(n, x + 24 * i, y) }
  7. end
复制代码
但是我理解不了第二句和第三句……
第二句是什么意思?
each_with_index又是啥??
希望大神指导……
谢谢了辛苦了拜托了……
(光速秒逃)

唯一的信徒

梦石
0
星屑
1697
在线时间
1359 小时
注册时间
2013-1-29
回帖
1537
发表于 2013-2-21 09:28:12 | 显示全部楼层
each_index 还好解释= =
http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-each_index
这个就是each_index的解释= =貌似是数组的方法= =
(假如我搞错了= =,这个icon其实是哈希的话自行查找哈希的each_index 方法= =)
『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


假如上面的图片挂了的话麻烦各位去发个帖 @ 一下 orzFly 让他修复 deartime
回复

使用道具 举报

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2013-2-21 10:54:11 | 显示全部楼层
本帖最后由 Sion 于 2013-2-21 13:07 编辑

Array[i, n]就是得到Array从索引 i  处开始之后的 n 个元素(包含元素 i )组成的数组
  1. a = ["a", "b", "c", "d", "e", "f"]
  2. i = 0; n = 4
  3. p a[i, n] #=> ["a", "b", "c", "d"]
  4. p a       #=> ["a", "b", "c", "d", "e", "f"]
复制代码
each_index是索引;each_with_index是元素+索引,block可以设置2个参数,只用1个参数的时候等于each:
  1. a = ["a", "b", "c"]
  2. a.each_index {|i| print  i, " -- " }                #=> 0 -- 1 -- 2 --
  3. puts ""
  4. a.each_with_index {|n| print n, " -- " }            #=> a -- b -- c --
  5. puts ""
  6. a.each {|n| print n, " -- " }                       #=> a -- b -- c --
  7. puts ""
  8. a.each_with_index {|n,i| print n, ",",  i, " -- " } #=> a,0 -- b,1 -- c,2 --
复制代码

点评

谢谢啦~  发表于 2013-2-22 22:06

评分

参与人数 1星屑 +12 收起 理由
945127391 + 12 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
48
在线时间
841 小时
注册时间
2010-8-11
回帖
1029
 楼主| 发表于 2013-2-22 21:57:42 | 显示全部楼层
Sion 发表于 2013-2-21 10:54
Array就是得到Array从索引 i  处开始之后的 n 个元素(包含元素 i )组成的数组each_index是索引;each_wit ...

似乎有点懂了= =
也就是说,
  1. icons = (actor.state_icons + actor.buff_icons)[0, width / 24]
复制代码
相当于
  1. icons = (actor.state_icons + actor.buff_icons)
  2. icons = icons[0, width / 24]
复制代码
?
然后,
  1. icons.each_with_index {|n, i| draw_icon(n, x + 24 * i, y) }
复制代码
相当于:
  1. for i in 0...icons.size
  2.   n = icons[i]
  3.   draw_icon(n, x + 24 * i, y)
  4. end
复制代码
?
好吧上面都是我蒙的

点评

差不多吧,最好用each等方法来遍历数组,for循环容易出错:最后那个icons.size要减去1  发表于 2013-2-22 22:04
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部