文章目录

  • Lua介绍
  • Lua基本语法


近来,玩《baba is you》这款游戏的时候,我注意到游戏的逻辑几乎都是用Lua写的:

基于lua的游戏引擎_标识符


就像当年我玩《命运石之门》的游戏时,发现代码是用Python2写的时候一样…有点想学…所以就下了SciTE编辑器和Lua的交互程序。写下了第一行Lua语句(CSDN的编辑器连Lua的格式都没有?):

print("Hello Lua World!")

基于lua的游戏引擎_全局变量_02

Lua介绍

Lua作为一种轻量级的脚本语言,往往与C/C++集成,用于游戏的开发、Web脚本的开发和独立应用的扩展和定制。

Lua 特性

  • 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
  • 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
  • 其它特性:
    支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
    自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
    语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
    通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。

Lua是有限的,除了表(关联数组)只有table一种外,它的数字类型也只有double一种…等等,因此,它是很轻量的。

和python一样,lua可以交互式编程,也可以写.lua脚本。

Lua基本语法

  • 注释:单行注释为--,多行注释为--[[ --]]
  • 标识符:用于定义变量或者函数,[_A-Za-z][_A-Za-z0-9]*,区分大小写,不允许用特殊字符如$/%等定义标识符。
  • 关键字和保留字:不能作为常量、变量或其他自定义标识符,很少,和C艹无法比。
and        break do     else 
elseif     end   false  for 
function   if    in     local 
nil        not   or     repeat 
return     then  true   until 
while
  • Lua内部变量一般形式为下划线+一串大写字母,别用。
  • 变量默认为全局变量,无需声明,和python类似,赋值即创建这个全局变量,用local申明局部变量。访问一个不存在的全局变量不会出错,只会得到nil删除一个全局变量,赋值为nil即可。