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

Project1

 找回密码
 注册会员
搜索
查看: 429|回复: 21

[已经解决] 建立$开头的全局变量可以像公共变量那样包涵“[]”符号吗?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
4954
在线时间
186 小时
注册时间
2015-5-8
帖子
465
发表于 2019-11-28 22:03:49 | 显示全部楼层 |阅读模式

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

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

x
任意一个公共变量里都含有"[]"符号,比如第2号公共变量是这么写的:$game_variables[2]
那咱要想建立一堆以$开头的全局变量可以也包涵“*[]”符号吗?
比如咱这么写可以吗:
$xyz[1]=0
$xyz[2]=0
$xyz[3]=0
$xyz[4]=0
$xyz[5]=0
$xyz[6]=0
$xyz[7]=0

Lv5.捕梦者

梦石
10
星屑
21083
在线时间
1489 小时
注册时间
2010-11-14
帖子
3004
发表于 2019-11-28 23:19:58 | 显示全部楼层
需要先对变量初始化,可以用数组或散列(哈希表)来达到这样的效果。

# 数组的场合
$xyz = []
$xyz[0] = 0 # [0]
$xyz[2] = 0 # [0, nil, 0]

# 散列的场合
$xyz = {}
$xyz[0] = 0 # {0=>0}
$xyz[2] = 0 # {0=>0, 2=>0}

评分

参与人数 1星屑 +30 收起 理由
guoxiaomi + 30 塞糖

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
4954
在线时间
186 小时
注册时间
2015-5-8
帖子
465
 楼主| 发表于 2019-11-28 23:47:33 | 显示全部楼层
KB.Driver 发表于 2019-11-28 23:19
需要先对变量初始化,可以用数组或散列(哈希表)来达到这样的效果。

# 数组的场合


多谢大神!
那请问我可以直接用一个for循环做吗?
比如上面的例子是否可以这么写呢:
$xyz = []
for i in 1..7
$xyz = 0
end
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2437
在线时间
190 小时
注册时间
2019-9-16
帖子
223
发表于 2019-11-29 00:56:01 | 显示全部楼层
taeckle 发表于 2019-11-28 23:47
多谢大神!
那请问我可以直接用一个for循环做吗?
比如上面的例子是否可以这么写呢:


可以,但是你写的有问题

RUBY 代码复制打印
  1. $xyz = []
  2. for i in 1..7
  3. $xyz[i] = 0        #改了这里
  4. end

也可以写成这样

RUBY 代码复制打印
  1. $xyz = []
  2. (1..7).each { |i|   $xyz[i] = 0 }

点评

找到区别了!多谢指正!  发表于 2019-11-29 05:39
我写的哪里有问题了..不是跟你写的一样嘛..  发表于 2019-11-29 05:38

评分

参与人数 2星屑 +30 +1 收起 理由
guoxiaomi + 30 塞糖
taeckle + 1 多谢指正!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
4954
在线时间
186 小时
注册时间
2015-5-8
帖子
465
 楼主| 发表于 2019-11-29 07:09:41 | 显示全部楼层
KB.Driver 发表于 2019-11-28 23:19
需要先对变量初始化,可以用数组或散列(哈希表)来达到这样的效果。

# 数组的场合

报告大神,
这么建全局变量好像就不能读写或者对全局变量做加减乘除的运算了,关闭游戏后在重新登录游戏就无效了,
请问要怎么存储或者加减乘除全局变量的数值啊?
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (管理员)

老黄鸡

梦石
0
星屑
19484
在线时间
6541 小时
注册时间
2009-7-6
帖子
13004

开拓者贵宾

发表于 2019-11-29 08:38:37 | 显示全部楼层
taeckle 发表于 2019-11-29 07:09
报告大神,
这么建全局变量好像就不能读写或者对全局变量做加减乘除的运算了,关闭游戏后在重新登录游戏 ...

建议先了解数组的概念,模棱两可的理解大家也没法具体回答你

评分

参与人数 2星屑 +30 +1 收起 理由
guoxiaomi + 30 塞糖
taeckle + 1 塞糖

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
长期合作请联系QQ1213237796(暂停)
定制RM全系列脚本,黑科技,请联系QQ349570812(暂停)。
不接受私人问题咨询
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
4954
在线时间
186 小时
注册时间
2015-5-8
帖子
465
 楼主| 发表于 2019-11-29 08:49:38 | 显示全部楼层
本帖最后由 taeckle 于 2019-11-29 08:52 编辑
fux2 发表于 2019-11-29 08:38
建议先了解数组的概念,模棱两可的理解大家也没法具体回答你


这个问题不仅涉及到数组还有全局变量,
新手入门里关于这两个概念的介绍就那几行,跟咱的问题也没啥关系,
好吧,我把我的问题简化一下:

按照上面这么写关闭游戏再重新登录游戏就报错了,提升就是那个“[]”没定义, 貌似这么搞只能用到程序结束,

该怎么解决呢?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
17921
在线时间
6301 小时
注册时间
2009-3-15
帖子
3510
发表于 2019-11-29 10:51:35 | 显示全部楼层
taeckle 发表于 2019-11-29 08:49
这个问题不仅涉及到数组还有全局变量,
新手入门里关于这两个概念的介绍就那几行,跟咱的问题也没啥关系 ...

可以在Game_System新增方法读取..
会保存在存档里的..
又或且把你的变量加到存档读档里..

我觉得第一个方法好..

评分

参与人数 1+1 收起 理由
taeckle + 1 多谢大神!

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2437
在线时间
190 小时
注册时间
2019-9-16
帖子
223
发表于 2019-11-29 13:02:36 | 显示全部楼层
taeckle 发表于 2019-11-29 07:09
报告大神,
这么建全局变量好像就不能读写或者对全局变量做加减乘除的运算了,关闭游戏后在重新登录游戏 ...

你把数据存进系统原有的变量就行了啊,这样就会可以保存数据了。
如果你的数据很多也不要紧,把系统原有变量的其中一个声明成数组变量就好了。
https://rpg.blue/thread-479105-1-1.html
这是你曾经发的帖子,5楼我回答了你这种问题,你怕是没认真看

评分

参与人数 1+1 收起 理由
taeckle + 1 谢谢你!

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
4954
在线时间
186 小时
注册时间
2015-5-8
帖子
465
 楼主| 发表于 2019-11-29 14:07:25 | 显示全部楼层
寒凌天 发表于 2019-11-29 13:02
你把数据存进系统原有的变量就行了啊,这样就会可以保存数据了。
如果你的数据很多也不要紧,把系统原有 ...

请问下你是怎么存储全局变量的啊,比如现在有个全局变量$xzy, $xyz = 100,
按照你说的方法该怎么存储这个全局变量$xzy呢?

点评

那个帖子五楼下面写的就是全局变量,而且可以储存的,只要$game_variables开头的数组变量都是可以储存的  发表于 2019-11-29 22:45
你自己顶的帖子就有教..你到底有没认真看..  发表于 2019-11-29 14:46
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2020-4-8 23:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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