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

Project1

 找回密码
 注册会员
搜索
查看: 72|回复: 3

[有事请教] 关于游戏内置的全局变量$game_variables

[复制链接]

Lv2.观梦者

梦石
0
星屑
260
在线时间
15 小时
注册时间
2018-1-31
帖子
19
发表于 6 天前 | 显示全部楼层 |阅读模式

加入我们,一起完成梦想。

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

x
为了尝试一些新功能,我使用了下列语句:
for i in 0..($game_variables.size-1)
  $chamo_variables[i] = $game_variables[i]
end
照理说$game_variables要么是HASH要么是ARRAY,但是竟然会跳错说.size方法未定义,请问这是为什么呢?

Lv3.寻梦者 (版主)

梦石
0
星屑
2720
在线时间
6190 小时
注册时间
2013-11-2
帖子
1289

开拓者剧作品鉴家

发表于 6 天前 | 显示全部楼层
RPG Maker VX Ace 的 $game_variables 存的不是数组更不是哈希表。它是一个类,名叫Game_Variables。
这个类存在的主要意义是拓展数组,提供默认值的功能。(原本只有哈希表有)
真正的公共变量数组存在Game_Variables类的@data实例变量里面。

那么怎么获取实例变量呢?两个方法。
一个是给Game_Variables类新增一个名叫size的方法,返回@data.size。
另一个是使用黑科技方法instance_variable_get。用法请参考置顶的RGSS3教程,章节2.8。

另外我得吐槽for的使用。
for i in 0..(size-1)
可以简化成
size.times do |i|
Ruby有很多种迭代的写法。详细信息请参考置顶教程的章节1.5。

点评

补充:用3个点也可以代替这个写法  发表于 昨天 01:10
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
260
在线时间
15 小时
注册时间
2018-1-31
帖子
19
 楼主| 发表于 昨天 00:30 | 显示全部楼层
RaidenInfinity 发表于 2018-6-13 14:52
RPG Maker VX Ace 的 $game_variables 存的不是数组更不是哈希表。它是一个类,名叫Game_Variables。
这个 ...

谢谢大佬!我去看看!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2018-6-19 06:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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