游民星空 > 攻略秘籍 > 攻略 > 正文

《饥荒》MOD制作及发布图文教程 MOD怎么制作

2016-07-05 17:00:20 来源:Steam社区 作者:NecroKaiser 我要投稿

第4页:Lua编程

展开

Lua编程

  Lua(请不要念成“撸啊”),一款被设计成可用于包括游戏、网站和图形处理等多方面等各类应用的轻量级可嵌入的脚本语言,在很多游戏游戏中得到应用,例如:Don't Starve,Don't Starve Together,Crusader Kings II,Europa Universalis IV,Crypt of the NecroDancer,等等。

  要阅读本章的内容,你需要对计算机编程的概念有基本的了解。

  首先为那些已经学习过#编译原理的童鞋献上Lua的AST

游民星空

标识符/Identifiers

  Lua中的标识符,可以是任何以字母或下划线开始,由字母([a-zA-Z])、数字([0-9])或下划线('_')构成的字符串。

  Lua对大小写敏感,也就是说Lua跟LUA是不同的两个标识符。

关键字/Key words

  Lua提供了共计21个关键字,即:

  andbreakdoelseelseif

  endfalseforfunctionif

  inlocalnilnotor

  repeatreturnthentrueuntilwhile

其他符号

  + - * / ^ =

  ~= <= >= < > ==

  ( ) { } [ ]

  ; : , . .. ...

赋值Assignment

  Lua,正如JavaScript一样,是一种类型松散(loose typing)的脚本语言;换言之,与C/C++和Java等强类型定义语言中要求声明(declare)变量时必须选择变量的类型不同,Lua赋值时只需要变量名和变量值:

  my_var = "hello"

短路求值/Minimal evaluation

  由于Lua内核是基于C语言编写的,支持短路求值自然不足为奇。

  所谓短路求值,即在以下Lua代码

  if condition_A and condition_B and condition_C then

  中,首先计算condition_A的真值,若condition_A为假(false),则跳出;否则依次计算下一个布尔表达式的真值,直到出现假或者全部表达式都计算完毕为止。

表/Table

  Lua的设计者在其语法中引入了表的概念,用以表示中的数组(Array)和图(Map)两种数据结构。

  1.创建一个表

  你可以创建一个以字符串为键(Key)的表,即:

  my_map = { apple = 5, banana = 10, melon = 9 }

  或者一个类似数组的表,即:

  my_array = { "Tom", "Jack", "Peter" }

  2.修改表中的数据

  如果你的表是以字符串为键的,那么你可以:

  my_map.apple = 15或者my_map["apple"] = 17

  如果你的表示以数字为键的,那么你可以:

  my_array[1] = "Tompson"

  请注意,Lua中以数字为键的表跟C/C++中数组不同,也就是my_array[0]的值是 nil。

表的遍历

  以字符串为键的表通过以下语法进行遍历:

  for k, v in pairs(my_map) do

  而以数字为键的表则是:

  for i, v in ipairs(my_array) do

控制结构

  1.选择

  if exp then

  block

  elseif exp then

  block

  else

  block

  end

  2.当型循环

  while exp do

  block

  end

  3.直到型循环

  repeat

  block

  until exp

  4.从循环中跳出

  在循环结构中使用return和break可以跳出。

更多相关内容请关注:饥荒专区

责任编辑:墨池

上一页 1 2 3 4
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

游民星空APP
随手浏览游戏攻略
code
攻略合集
单机游戏下载
休闲娱乐
综合热点资讯
游民星空联运游戏