Project1

标题: 关于内嵌表达式的运用。 [打印本页]

作者:  眠     时间: 2018-7-23 11:30
标题: 关于内嵌表达式的运用。
我在修改半生的灯光脚本。

关于里面的烛光设定:
RUBY 代码复制
  1. LIGHTS = [
  2.     ["引用的图片名字",     1,  1.5,        0,   0],
  3.   ]


是这样的,我想让这个图片的名字可以随着变量变化。

于是我先用这种方法定义一个变量。
$light_name = "light_type_" + $game_variables[1].to_s



这样应该就把我想要引用的图片名字记录下来了吧?
通过p "#{$light_name}"

显示的也是我想要的字符串。


但是在半生里的脚本引用的时候怎么都是显示空值或者是错误。
我已经试过几种写法都不对,请问原因是什么呢?


比如引用
RUBY 代码复制
  1. LIGHTS = [
  2.     [ "#{$light_name}",     1,  1.5,        0,   0],
  3.   ]

就会是空值
  1. ""
复制代码








作者: 喵呜喵5    时间: 2018-7-23 14:02
  1. a = 1
  2. b = a
  3. a = 2
  4. b = ?
复制代码

作者:  眠     时间: 2018-7-23 14:34
喵呜喵5 发表于 2018-7-23 14:02

谢谢你的回答,不过我可能有点短路,觉得这两种情况好像不太一样。
所以没有现在也没有理解到。。

我也没有重置$light_name和相关变量,应该不会变成空值的啊。。
所以到现在都是莫名其妙。

我现在通过硬编码完成了这个功能。
作者: fux2    时间: 2018-7-23 16:03
这个常量的初始化在$gameVariables之前就初始化了。
作者: fux2    时间: 2018-7-23 16:13
fux2 发表于 2018-7-23 16:03
这个常量的初始化在$gameVariables之前就初始化了。

用eval吧,这个比较万能,这些既然叫常量肯定就不能存变量的(从原则上),作为静态字符串eval就行了。
作者: 灯笼菜刀王    时间: 2018-7-23 16:35
果然有人和咱的想法一样,想在游戏内部更改灯光类型。

咱之前的设想在这里https://rpg.blue/thread-408903-1-1.html 嘛,XP版是R叔移植的,结构上应该和VA是一样的。

之前失败的原因在于game event不停的刷新light_type, 导致后面更改light_type没用。 最后咱加了句 当light_type 不等于0的时候return。顺利实现改变灯光类型效果, 目前使用上没发现异常, 可以参考下咱的方法~




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