Project1

标题: |= 是什么意思 [打印本页]

作者: a13637392916    时间: 2012-5-4 20:03
标题: |= 是什么意思
|= 好像都是出现在game_batter中吧。但是不知道是什么意思,好像F1教程里也没看到过。dsu_plus_rewardpost_czw
作者: he11120    时间: 2012-5-4 21:36
|=
集合的并集运算。将任属两数组之一的单元重组为一个新数组并返回该数组。重复单元将被清除。

作者: 天使喝可乐    时间: 2012-5-4 22:16
这个不是 制表符吗?= =
作者: link006007    时间: 2012-5-4 22:28
本帖最后由 link006007 于 2012-5-4 22:28 编辑

google或百度 位运算  可能是你要的、、
当然不排除ruby内部的运算符重载。。 这个就要具体问题具体分析
作者: 灵魂の补给    时间: 2012-5-4 23:59
本帖最后由 灵魂の补给 于 2012-5-5 00:01 编辑

数组里:
a = [1,2,3]
b = [2,3,4]
p a|= b #[1,2,3,4]
相当于 a = a | b
相当于.....
在数值里
相当于数学里的位移运算
具体学数学吧
作者: a13637392916    时间: 2012-5-5 09:00
灵魂の补给 发表于 2012-5-4 23:59
数组里:
a = [1,2,3]
b = [2,3,4]

effective |= hit < 100 那这个怎么解释,难道用effective和hit的来和判断是否小于100,effective |= hit,应该是个数组吧。那样输出的是个什么结果?一个布尔值。还是说小于100的都被删除?
作者: 灵魂の补给    时间: 2012-5-5 09:05
把那一页代码发上来我看下才知道
作者: orzfly    时间: 2012-5-5 09:14
a |= b
就相当于
a = a | b
如果 a, b 是 Array,那么就是并集运算,即将 a, b 相加并去掉重复项。
如果 a, b 是数,那么就是逻辑或运算。
作者: orzfly    时间: 2012-5-5 09:19
a13637392916 发表于 2012-5-5 09:00  effective |= hit< 100 那这个怎么解释,难道用effective和hit的来和判断是否小于100,effective |= hit ...

对于布尔值 a, b
a |= b 相当于 a = a | b
是布尔值的或运算

effective 是 a
hit < 100 是 b
也就是说经过 effective |= hit < 100
就相当于
if effective then effective = true end
if hit < 100 then effective = true end
作者: a13637392916    时间: 2012-5-5 09:21
灵魂の补给 发表于 2012-5-5 09:05
把那一页代码发上来我看下才知道

def skill_effect(user, skill)
    # 清除会心一击标志
    self.critical = false
    # 特技的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
    # 或者特技的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
    if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
       ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
      # 过程结束
      return false
    end
    # 清除有效标志
    effective = false
    # 公共事件 ID 是有效的情况下,设置为有效标志
    effective |= skill.common_event_id > 0
    # 第一命中判定
    hit = skill.hit
    if skill.atk_f > 0
      hit *= user.hit / 100
    end
    hit_result = (rand(100) < hit)
    # 不确定的特技的情况下设置为有效标志
    effective |= hit < 100
    # 命中的情况下
    if hit_result == true
      # 计算威力
      power = skill.power  +skill.atk_f + user.atk
      if power > 0
        power -= skill.pdef_f
        power -= skill.mdef_f
        power = [power, 0].max
      end
就这个了
作者: 灵魂の补给    时间: 2012-5-5 09:38
本帖最后由 灵魂の补给 于 2012-5-5 09:39 编辑

的确effectice是一个布尔值,见先前评论
大概意思 伤害小于100时候为true存在effectice里


‘‘──灵魂の补给于2012-5-5 11:55补充以下内容

啊啊啊,你自己试验p看看吧
’’




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