Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 2.61 KB

06-env-vars.md

File metadata and controls

70 lines (49 loc) · 2.61 KB

环境变量

在上一章我们讲了变量, 这章我们讲环境变量

环境变量是不需要去赋值或使用就已经存在的变量, 虽然大部分都不会显示在变量表中.

环境变量大多不可赋值, 但是较少环境变量是可赋值的

一些环境变量会自动改变, 比如@time会随着游戏时间改变

常见的一些环境变量, 例如:

  • true: 1
  • false: 0
  • null: null
  • @copper: 铜的 content
  • @time: 目前游戏进行的时间 (秒)
  • @links: 当前链接的建筑总数
  • @unit: 当前绑定的单位
  • @counter1: 执行完这行后要执行的行号 (可被赋值)

并且, 当逻辑链接建筑时, 会生成一个以建筑短名称2加同类建筑数量组成的环境变量, 来指向这个建筑, 变量类型是 building

例如链接两个信息板就会得到 message1message2, 其短名称是message

Tip

当你解除某个建筑的链接, 建筑和编号3会保留, 也就是说, 只要下一次链接的建筑相对逻辑的朝向和位置都相同时, 还会是同一个编号

如果在同一个位置链接了另一名称的建筑, 那保留建筑的会被换成新的建筑

较为完整的环境变量列表可以参考 附录03-环境变量


上一章 目录 下一章

Footnotes

  1. 这个变量非常重要, 学习到中期一些重要的控制结构都依赖于此.
    逻辑中每个语句的运行可看成以下四步

    1. 读取 @counter 处的语句
    2. 将 @counter 自身增加1
    3. 执行步骤1.读取到的语句
    4. 回到步骤1.

    通俗来讲, 这个变量控制了执行某行语句后要执行哪一行, jump 语句做的事就是条件满足时将这个变量改为箭头指向的行号(行号从0开始)

    从上述步骤我们可以看出, 执行语句时, 且因为@counter是可赋值的, 所以我们可以随意的控制执行完这行后要执行哪行

    函数结构和select结构都依赖于此, 在之后会讲解这两个结构

  2. 建筑的英文名称以短横线-分割, 分割为多段, 并按以下情况处理:

    • 如果至少分割为了两段, 且最后一段是large或能被解析为一个数字, 那么将会取倒数第二段
    • 如果不满足上述条件, 将会取倒数第一段

    例如:

    • foo -> foo
    • foo-bar -> bar
    • foo-bar-2.5 -> bar
    • foo-bar-large -> bar
    • foo-bar-cell -> cell
  3. 每一个被链接的建筑都有一个编号, 由0开始, 在之后讲getlink时需要用到