Project1

标题: 关于for i in的用法 [打印本页]

作者: timmyyayaya    时间: 2012-4-16 15:42
标题: 关于for i in的用法
本帖最后由 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  
复制代码
dsu_plus_rewardpost_czw
作者: eve592370698    时间: 2012-4-16 15:48
本帖最后由 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的相同部分就得分别写一遍了,没办法合并。
作者: timmyyayaya    时间: 2012-4-16 16:00
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轴,
但不知道从哪边分段来写?
作者: orzfly    时间: 2012-4-16 19:45
谁说不能了?
  1. for i in 0..7
  2.   y=if i > 3 then 222 else 111 end
  3.   ....
  4. end
复制代码

作者: though110112113    时间: 2012-4-16 20:32
0.0不是0到6吗?三个点才是到7吧?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1