查看: 2114|回复: 10

[胡扯] Ruby仿js的object

[复制链接]

遠航の猫咪

梦石
3
星屑
26947
在线时间
2423 小时
注册时间
2005-10-15
回帖
987

开拓者

发表于 2018-1-20 19:18:47 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 SailCat 于 2018-1-20 19:24 编辑

其实我也不知道能有啥用……
而且ruby没有undefined(熟悉js的应该知道这和null不太一样)只好用nil了

[pre lang="ruby"]class JObject < Hash
  
  def method_missing(symbol, *args)
    if symbol.to_s[-1] == ?=
      self[symbol.to_s[0..-2].to_sym]= args[0]
    elsif keys.include?(symbol)
      self[symbol]
    else
      nil
    end
  end
end

c = JObject.new
c.str = 1
c.dex = 2
c.int = 3
c.def = "4"
p c      #{:str=>1, :dex=>2, :int=>3, :def:=4}
p c.str  # 1
p c.dex  # 2
p c.int  # 3
p c.def  # "4"
p c.mdf  # nil
c.sub = JObject.new
c.sub.r = 5
p c.sub.r # => 5
c.func = Proc.new {p c.str}
c.func.call #=> 1
[/pre]

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2018-1-20 19:30:49 | 显示全部楼层
get√
话说我刚发了一个多背包,不过xp弄起来似乎麻烦一些,你要不要看一下?
https://rpg.blue/thread-405179-1-1.html

点评

不论xp还是va存的都不是物品实体的,所以其实没有必要那样去实现……不过你说的这个办法确实可行  发表于 2018-1-20 19:52
xp好像把@data.push那部分再单独做个方法先算完物品然后也可以?  发表于 2018-1-20 19:43
我的是在改变当前的背包时,先更新当前背包的内容,清空物品,然后把目标背包里的物品取出来,改变背包id为目标背包的id  发表于 2018-1-20 19:43
看看va的Game_Party#all_items怎么实现的…… 我记得和我sep core里的all_items实现方式一样……所以你把那段加进去不就行了吗? 哦不行,gain_item还得改写  发表于 2018-1-20 19:40
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45700
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2018-1-20 19:33:11 | 显示全部楼层
不如直接定义在hash里,就完全一样了2333

点评

对呀  发表于 2018-1-20 19:35
你是说初始化可以直接写{}了吗……  发表于 2018-1-20 19:33
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 1 0

使用道具 举报

头像被屏蔽
梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
回帖
1577

开拓者

发表于 2018-1-22 11:35:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
4623
在线时间
1207 小时
注册时间
2016-4-7
回帖
944

开拓者

发表于 2018-1-26 00:09:30 | 显示全部楼层
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部