Project1

标题: 请教index的问题 [打印本页]

作者: kvkv97    时间: 2013-12-30 17:39
标题: 请教index的问题
我在Commond_Window类中 ,看到了@Index = -1又有
def index=(n)
@Index = n
end
def xxxx(row)
   if index < 0
    self.contents.index.empty
请问:index怎么会有数值,它到底是什么?是数组还是变量?empty是方法,可是我查了,找不到它的出处,它是什么类的?起什么作用?  
作者: 亿万星辰    时间: 2013-12-30 18:13
@index是个Window类里用来指示光标位置的变量,0为第一项,1为第二项……,-1就代表看不到选项了

你所举例中的
self.contents.index.empty
首先这句意义不明,确认是对的吗?是什么脚本里的……默认脚本里没有这个。
其次这里的这个index即便有意义,也与上面的@index代表着不同的两个变量。
作者: Sion    时间: 2013-12-30 19:07
本帖最后由 Sion 于 2013-12-30 19:11 编辑

其父类 Window_Selectable 里定义了 attr_reader :index
之前不是已经说过这个问题吗?http://rpg.blue/thread-342038-1-1.html
empty 方法只有 RGSS3 内建类 Rect 中有;默认脚本里没有看到你写的那个用法。
作者: Sion    时间: 2013-12-31 17:16
本帖最后由 Sion 于 2013-12-31 17:18 编辑

你要先把基本概念弄清。
方法都是对特定的对象调用的。默认脚本里的方法肯定包含在对象或者是对象的父类中,否则就会出错。
这种一连串的方法,是从左开始执行,然后该方法的返回值(对象)再调用后面的方法。

你看看这个能明白吗

RUBY 代码复制
  1. class NumberBox
  2.   attr_reader :num
  3.   def initialize #在创建实例时被自动调用
  4.     @num = 0
  5.   end
  6.  
  7.   def plus(v)
  8.     @num += v
  9.     return self
  10.   end
  11.   def minus(v)
  12.     @num -= v
  13.     return self
  14.   end
  15. end
  16.  
  17. b = NumberBox.new
  18. b.plus(5).minus(4).plus(3)
  19.  
  20. p b.num #=> 0 + 5 - 4 + 3





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