Project1

标题: 怎么样在脚本中建新的组变量组啊 [打印本页]

作者: 光の異形    时间: 2013-5-6 19:23
标题: 怎么样在脚本中建新的组变量组啊
本帖最后由 光の異形 于 2013-5-7 12:11 编辑

  蠢蠢的 只会这样 ······
  def   gcai_a2_4
          gcai_a2_4 = "悲伤"
      end
求助
作者: j433463    时间: 2013-5-7 07:00
基本来说,变量有局部的,全局的分别,如果名称前不加附号,是局部的,用在 def 中就只有 def 中可以用,出了 def 就不算了,就像您写的那个,如果在前面加 @,就是在脚本中都可以用,如果在前面加的是 $,那就是全局的每一个脚本中都用得上。

另外还有 @@ $$ 之类的,就不说了,我也不太懂的。
作者: 光の異形    时间: 2013-5-7 08:54
j433463 发表于 2013-5-7 07:00
基本来说,变量有局部的,全局的分别,如果名称前不加附号,是局部的,用在 def 中就只有 def 中可以用,出 ...

多谢前辈 我想了好久 已经明白了我问问题了
貌似从一个很厉害的 误区里边回来了
游戏里边其实定义了 5000个空白的 变量给玩家 设置这些变量上限的时候 这里变量从 nil 变成了 0 是不是这样啊
所以 我要一个整个游戏都可以用的变量组的话,要在脚本定义一个空白的组先?

$gcai_a1 = nil
$gcai_a1_001 = nil
$gcai_a1_002 = nil
...........
$gcai_a1_100 = nil

是这样吗?


作者: j433463    时间: 2013-5-7 10:11
nil 是空的意思,如果按照 C 的说法,它指向一个空的指标,它是指向一个物件对象的 Empty 空值,而 Nil 则指向一个类而不是物件,我觉得应该这样解释。

一个变量没有指定前,它的值应该是 nil ,空的值,不存在任何值,未建立的值,nil 不是 0,两者不同,0 是可以计算的,有数的,nil 没有,它是空,
如果您这样测:

p $abc

控制台应该会看到 nil 这个值,因为 $abc 没有指定,它没有被赋值,所以初始就是 nil,而游戏定义的 5000 个变量,其实并不是只有 5000,
若用了破限脚本或许上万都可以,即使您用

p $game_variable[5013]

得到的还是 0,那已经超过了 5000 变量,为什么?因为 Game_Variable 中这样设置:

@data = []

@data[variable_id] || 0

它在初始化 initialize 时设了一个空的数组,然后在取得变量时指定了回传的值如果不是 @data[variable_id] 就是 0

这和您说的 nil 变成 0 没有实质的关连,只是被脚本这样设定而已,非值即 0,您也可以参考这样做。






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