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

Project1

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

[已经解决] 谁能解释下这个@list[index][:enabled]

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
跳转到指定楼层
1
发表于 2014-8-6 18:28:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 九靈 于 2014-8-6 18:34 编辑

RUBY 代码复制
  1. Window_Selectable
  2. #--------------------------------------------------------------------------
  3.   # ● 按下确定键时的处理
  4.   #--------------------------------------------------------------------------
  5.   def process_ok
  6.     if current_item_enabled?
  7.       Sound.play_ok
  8.       Input.update
  9.       deactivate
  10.       call_ok_handler
  11.     else
  12.       Sound.play_buzzer
  13.     end
  14.   end
  15. #--------------------------------------------------------------------------
  16.   # ● 获取选择项目的有效状态
  17.   #--------------------------------------------------------------------------
  18.   def current_item_enabled?
  19.     return true
  20.   end

RUBY 代码复制
  1. Window_Command < Window_Selectable
  2. #--------------------------------------------------------------------------
  3.   # ● 获取选项的有效状态
  4.   #--------------------------------------------------------------------------
  5.   def current_item_enabled?
  6.     current_data ? current_data[:enabled] : false
  7.   end
  8.   #--------------------------------------------------------------------------
  9.   # ● 获取选项的指令数据
  10.   #--------------------------------------------------------------------------
  11.   def current_data
  12.     index >= 0 ? @list[index] : nil
  13.   end



current_data[:enable]
@list[index]


@list[index][:enabled]
这是什么?
应该会返回True

@list[index]
的index也是方法?还是变量?

current_data[:enable]
为什么是Symbol?
为什么是enable?

RUBY 代码复制
  1. def add_command(name, symbol, enabled = true, ext = nil)
  2.     @list.push({:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext})
  3.   end

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
4
 楼主| 发表于 2014-8-6 19:04:44 | 只看该作者
taroxd 发表于 2014-8-6 18:50
先推荐你一本书:https://rpg.blue/thread-315743-1-1.html
你的问题在里面有所解释

感谢!
URG3我看完了
似乎有讲到这个...

可能是我对哈希不熟
不太能转过来...
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21691
在线时间
9421 小时
注册时间
2012-6-19
帖子
7119

开拓者短篇九导演组冠军

3
发表于 2014-8-6 18:55:18 | 只看该作者

点评

谢谢!我看懂了!  发表于 2014-8-6 19:45

评分

参与人数 1星屑 +150 收起 理由
taroxd + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-8-6 18:50:50 | 只看该作者
本帖最后由 taroxd 于 2014-8-6 18:54 编辑

先推荐你一本书:https://rpg.blue/thread-315743-1-1.html
你的问题在里面有所解释

@list 是由一个哈希表构成的数组,每一个都形如这个格式:{:name=>'名字', :symbol=>:符号, :enabled=>是否可用,true或false, :ext=>"任意扩展信息'}

@list[index][:enabled] 先对@list索引第index位置的元素,也就是一个哈希表。然后用 :enabled 索引该哈希表

index 为方法。当你没有找到为局部变量赋值的语句时都被解释为方法。该方法是在 Window_Selectable 中用 attr_reader 定义的

current_data[:enable] 用一个 symbol 索引 current_data(一个哈希表)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 09:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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