Project1

标题: 求一方法 [打印本页]

作者: 听海    时间: 2011-4-3 18:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 听海    时间: 2011-4-4 08:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: 忧雪の伤    时间: 2011-4-4 11:50
本帖最后由 忧雪の伤 于 2011-4-4 11:54 编辑
  1. def foo(value, change)
  2.   value += change
  3. end
复制代码


好吧……没认真看题……无视我。
作者: 听海    时间: 2011-4-4 12:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: 后知后觉    时间: 2011-4-4 12:11
  1. module RPG
  2.   class Weapon
  3.     def atk(hzhj = false)
  4.       return Proc.new{|n|@atk = n} if hzhj
  5.       return @atk
  6.     end
  7.   end
  8. end
  9. def foo(a, b)
  10.   a.call b
  11. end

  12. $data_weapons = load_data("Data/Weapons.rxdata")
  13. data = $data_weapons[1]
  14. p data.atk
  15. foo(data.atk(true), 3)
  16. p data.atk
  17. exit
复制代码
额,貌似这不是你想要的,等高人解答吧~~~
作者: 听海    时间: 2011-4-4 12:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沙漠点灰    时间: 2011-4-4 14:24
回复 听海 的帖子

直接
$data_weapons[1].atk += 3  不行吗...?
那就
def foo(str,v)
  eval("#{str}+=#{v}")
end
当然,必须:

data = "$data_weapons[1]"
foo(data+".atk",3)
才行
这样还不行就只有继续等高人
作者: 听海    时间: 2011-4-4 19:40
提示: 作者被禁止或删除 内容自动屏蔽




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