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

Project1

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

[已经解决] 关于for i in的用法

[复制链接]

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
跳转到指定楼层
1
发表于 2012-4-16 15:42:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 timmyyayaya 于 2012-4-16 16:13 编辑

不好意思,在下想请教一下,
下面这段想将0..7变成0..3和4..7,
还请大大指点一下。
  1.    def refresh
  2.     self.contents.clear
  3.     bitmap = RPG::Cache.windowskin("Hud_Hotkeys")  
  4.     self.contents.blt(0, 0, bitmap, Rect.new(0, 0, 120, 55))
  5.     for i in 0..7
  6.       x = 32 * i + 0
  7.       item = $game_player.hud_equip[i]
  8.       next if item.nil?
  9.       if item.is_a?(RPG::Weapon)
  10.         item = nil if $game_party.weapon_number(item.id) == 0 and
  11.           @actor.weapon_id != item.id
  12.       elsif item.is_a?(RPG::Armor)
  13.         item = nil if $game_party.armor_number(item.id) == 0 and
  14.           @actor.armor1_id != item.id
  15.       elsif item.is_a?(RPG::Item)
  16.         item = nil if $game_party.item_number(item.id) == 0 or
  17.           !$game_party.item_can_use?(item.id)
  18.       end
  19.       bitmap = RPG::Cache.icon(item.icon_name)
  20.       self.contents.blt(x, 4, bitmap, Rect.new(0, 0, 24, 24))
  21.     end
  22.   end  
复制代码

Lv2.观梦者

梦石
0
星屑
432
在线时间
4175 小时
注册时间
2010-6-26
帖子
6474
2
发表于 2012-4-16 15:48:02 | 只看该作者
本帖最后由 eve592370698 于 2012-4-16 16:03 编辑

for i in 0..7
表示i这个值在0、1、2、3、4、5、6、7的情况下,类似于if i >= 0 and i <=7
不过有循环处理的意思,一般表示动态变化的变量。
  1. for i in 0..3
  2.   y = 一个y轴
  3. end
  4. for i in 4..7
  5.   y = 另一个y轴
  6. end
复制代码
这样一来,原有那个0到7的相同部分就得分别写一遍了,没办法合并。
潜水,专心忙活三次元工作了……
回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
3
 楼主| 发表于 2012-4-16 16:00:14 | 只看该作者
eve592370698 发表于 2012-4-16 15:48
for i in 0..7
表示i这个值在0、1、2、3、4、5、6、7的情况下,类似于if i >= 0 and i  ...

嗯,在下知道i就是0、1、2、3、4、5、6、7,
在下想将其断成0..3是一个y轴,4..7是另外一个y轴,
但不知道从哪边分段来写?

点评

大致上了解了,感谢。  发表于 2012-4-16 16:15
这个具体看我楼上修改的,毕竟这个脚本不能有重复,也就是0..7不能和0..3离得太近(表达能力有限,不懂请见谅)  发表于 2012-4-16 16:05
回复

使用道具 举报

Lv6.析梦学徒

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60819
在线时间
1934 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

4
发表于 2012-4-16 19:45:07 | 只看该作者
谁说不能了?
  1. for i in 0..7
  2.   y=if i > 3 then 222 else 111 end
  3.   ....
  4. end
复制代码
我的言论只代表我个人的观点,不代表雇主及/或任何第三方的立场。
Opinions expressed are solely my own and do not express the views or opinions of my employer and/or any third parties.
捐赠 | GitHub
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-16
帖子
48
5
发表于 2012-4-16 20:32:11 | 只看该作者
0.0不是0到6吗?三个点才是到7吧?
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 12:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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