在上一章我们讲了变量, 这章我们讲环境变量
环境变量是不需要去赋值或使用就已经存在的变量, 虽然大部分都不会显示在变量表中.
环境变量大多不可赋值, 但是较少环境变量是可赋值的
一些环境变量会自动改变, 比如@time
会随着游戏时间改变
常见的一些环境变量, 例如:
true
:1
false
:0
null
:null
@copper
: 铜的 content@time
: 目前游戏进行的时间 (秒)@links
: 当前链接的建筑总数@unit
: 当前绑定的单位@counter
1: 执行完这行后要执行的行号 (可被赋值)
并且, 当逻辑链接建筑时, 会生成一个以建筑短名称2加同类建筑数量组成的环境变量, 来指向这个建筑, 变量类型是 building
例如链接两个信息板就会得到 message1
和 message2
, 其短名称是message
Tip
当你解除某个建筑的链接, 建筑和编号3会保留, 也就是说, 只要下一次链接的建筑相对逻辑的朝向和位置都相同时, 还会是同一个编号
如果在同一个位置链接了另一名称的建筑, 那保留建筑的会被换成新的建筑
较为完整的环境变量列表可以参考 附录03-环境变量
Footnotes
-
这个变量非常重要, 学习到中期一些重要的控制结构都依赖于此.
逻辑中每个语句的运行可看成以下四步- 读取 @counter 处的语句
- 将 @counter 自身增加1
- 执行步骤1.读取到的语句
- 回到步骤1.
通俗来讲, 这个变量控制了执行某行语句后要执行哪一行, jump 语句做的事就是条件满足时将这个变量改为箭头指向的行号(行号从0开始)
从上述步骤我们可以看出, 执行语句时, 且因为@counter是可赋值的, 所以我们可以随意的控制执行完这行后要执行哪行
函数结构和select结构都依赖于此, 在之后会讲解这两个结构 ↩
-
建筑的英文名称以短横线
-
分割, 分割为多段, 并按以下情况处理:- 如果至少分割为了两段, 且最后一段是
large
或能被解析为一个数字, 那么将会取倒数第二段 - 如果不满足上述条件, 将会取倒数第一段
例如:
foo
->foo
foo-bar
->bar
foo-bar-2.5
->bar
foo-bar-large
->bar
foo-bar-cell
->cell
- 如果至少分割为了两段, 且最后一段是
-
每一个被链接的建筑都有一个编号, 由0开始, 在之后讲getlink时需要用到 ↩