设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4634|回复: 3
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
48
在线时间
841 小时
注册时间
2010-8-11
帖子
1135
跳转到指定楼层
1
 楼主| 发表于 2013-2-21 06:07:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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又是啥??
希望大神指导……
谢谢了辛苦了拜托了……
(光速秒逃)

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
2
发表于 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
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

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

贵宾

3
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
841 小时
注册时间
2010-8-11
帖子
1135
4
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-28 13:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表