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

Project1

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

[已经解决] 关于游戏内置的全局变量$game_variables

[复制链接]

Lv2.观梦者

梦石
0
星屑
396
在线时间
22 小时
注册时间
2018-1-31
帖子
29
跳转到指定楼层
1
发表于 2018-6-13 14:37:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

2
发表于 2018-6-13 14:52:06 | 只看该作者
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个点也可以代替这个写法  发表于 2018-6-18 01:10

评分

参与人数 1星屑 +100 收起 理由
VIPArcher + 100 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
396
在线时间
22 小时
注册时间
2018-1-31
帖子
29
3
 楼主| 发表于 2018-6-18 00:30:21 | 只看该作者
RaidenInfinity 发表于 2018-6-13 14:52
RPG Maker VX Ace 的 $game_variables 存的不是数组更不是哈希表。它是一个类,名叫Game_Variables。
这个 ...

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1226
在线时间
45 小时
注册时间
2013-8-14
帖子
223
4
发表于 2019-10-24 20:17:17 | 只看该作者
不会ruby,MV新支持的JS才让我有了入坑的动力
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 18:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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