查看: 1706|回复: 7

[已经解决] 求教在游戏中用事件更改脚本中实变量的方法

[复制链接]
梦石
0
星屑
50
在线时间
346 小时
注册时间
2010-12-12
回帖
182
发表于 2014-4-15 23:58:36 | 显示全部楼层 |阅读模式

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

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

×
直接写脚本
      @变量=数值
居然没有用

星君

梦石
0
星屑
83
在线时间
2980 小时
注册时间
2011-10-9
回帖
2234

贵宾短篇七萝莉正太组冠军

发表于 2014-4-16 02:34:57 | 显示全部楼层
……因为你那不是全局变量
“@某某东西”不是全局变量
你用“$”就可以随时使用了

点评

LZ是想改变@变量的值,不是想用$变量代替。  发表于 2014-4-16 11:24

回复

使用道具 举报

狂気の月兔

梦石
0
星屑
421
在线时间
1245 小时
注册时间
2009-4-7
回帖
866

贵宾

发表于 2014-4-16 12:27:52 | 显示全部楼层
@变量 只能在 class 中使用. 如果需要修改的话, 需要定义接口.

比如说:
     attr_accessor , attr_read 什么的.

或者直接自己定义一个 方法 来修改.
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2014-4-1
回帖
11
发表于 2014-4-16 13:25:54 | 显示全部楼层
铃仙·优昙华院·因幡 发表于 2014-4-16 12:27
@变量 只能在 class 中使用. 如果需要修改的话, 需要定义接口.

比如说:


@变量
我更喜欢
  1. instance_eval("@变量 = XXX")
复制代码
或者
  1. instance_variable_set(:@变量, XXX)
复制代码
  

点评

个人感觉这样就不能保证 class 的封装性 了.  发表于 2014-4-16 13:44

评分

参与人数 1星屑 +50 收起 理由
丿梁丶小柒 + 50 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
346 小时
注册时间
2010-12-12
回帖
182
 楼主| 发表于 2014-4-17 00:03:04 | 显示全部楼层
铃仙·优昙华院·因幡 发表于 2014-4-16 12:27
@变量 只能在 class 中使用. 如果需要修改的话, 需要定义接口.

比如说:

我在class内部添加了attr_accessor :变量语句,但尽管如此,在事件脚本中使用@变量=数值语句依旧不能奏效
回复

使用道具 举报

星君

梦石
0
星屑
83
在线时间
2980 小时
注册时间
2011-10-9
回帖
2234

贵宾短篇七萝莉正太组冠军

发表于 2014-4-17 01:57:39 | 显示全部楼层
至高无上 发表于 2014-4-16 17:03
我在class内部添加了attr_accessor :变量语句,但尽管如此,在事件脚本中使用@变量=数值语句依旧不能奏 ...

你是放在scene里吗?如果是的话可以用$scene.变量 = 你要的数值,如果是window或sprite的话可以在scene里放那个window/sprite的attr_accessor嘛: D

评分

参与人数 1星屑 +50 收起 理由
丿梁丶小柒 + 50 我很赞同

查看全部评分


回复

使用道具 举报

老黄鸡

梦石
4
星屑
45707
在线时间
7951 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-4-17 07:43:11 | 显示全部楼层
至高无上 发表于 2014-4-17 00:03
我在class内部添加了attr_accessor :变量语句,但尽管如此,在事件脚本中使用@变量=数值语句依旧不能奏 ...

你事件里直接写给实例变量赋值当然都是给事件解释器的Interpreter类写实例变量,
看来楼主不清楚实例是什么意思?
A君有@age属性,B君也有@age属性,你写@age = 5,写的到底是谁的age呢?

评分

参与人数 1星屑 +50 收起 理由
丿梁丶小柒 + 50 我很赞同

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

狂気の月兔

梦石
0
星屑
421
在线时间
1245 小时
注册时间
2009-4-7
回帖
866

贵宾

发表于 2014-4-17 10:05:51 | 显示全部楼层
至高无上 发表于 2014-4-17 00:03
我在class内部添加了attr_accessor :变量语句,但尽管如此,在事件脚本中使用@变量=数值语句依旧不能奏 ...

既然使用了 attr_accessor , 那么就应该是 实例.变量 = XXX 来赋值的. 不在那个类里的赋值都不可以使用 @变量 的形式.

评分

参与人数 2星屑 +112 收起 理由
丿梁丶小柒 + 100 认可答案
至高无上 + 12 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部