首页 > 代码库 > 《LUA游戏开发实践指南》学习笔记1

《LUA游戏开发实践指南》学习笔记1

本文只做个人学习笔记!

Lua脚本语言的优点:免费、小巧、快速和易移植。

游戏项目中的Lua,可以完成以下工作

  1. 编辑游戏用户界面(玩家和你的游戏进行交互的媒介)

  2. 定义、存储和管理游戏数据(Lua本人并没有直接访问外部数据库的能力,但可以使用C++组件)

  3. 管理游戏实时事件

  4. 创建和维护开发者有好的游戏存储和载入系统

  5. 编写游戏的人工智能(AI)

  6. 创建功能原型,可以之后用高性能语言移植

Lua入门

Lua控制台

lua脚本(扩展名为.lua的文本文本)

代码块(Chunk):单个命令或者一系列命令组成脚本文件

dofile:用来立即执行脚本

“\\”代替单斜线,单斜线是用来告诉lua运行环境他后面的特殊符号

Lua基础

1优势:可以整合C++模块来扩展自身功能

2语言定义:不能以数字作为起始符,也要避免下划线(_)接大写字母

3lua保留关键字:

and
local
break
nil
do
not
else
or
elseif
repeat
end
return
false
then
for
true
function
until
if
while
in



4变量:变量不需要在使用前声明,类型取决人用户给它赋的值

5种变量类型:nil、Boolean、string、Number和table

nil:用来表示这个变量还没有被赋值。例如:myValue = http://www.mamicode.com/nil

Boolean:变量只有两种true和false。例如:myValue = http://www.mamicode.com/true

string(字符串):Lua中字符串可以小到一个字符,也可以包含百万字符以上

Number(双精度浮点数)

table(数据类型)

5局部变量和全局变量

默认是全局的

变量的有效范围取决于声明变量的位置,例:

function Myfun()
 local myX = 7
 if myX < 10 then
  local myY = "hello world"
  print(myY)
 end
 print(myY)
end

执行结果:

hello world

nil

运算符(特殊符号):可以让两个值得出运算结果

算术运算符:+-*/(a+b=c)

关系运算符:==~=<><=>=(if(a == b)特殊:table,只有两个table是同一个对象的时候才能得到预期结果)

逻辑运算符:and、or、not

and
比较两个参数时,如果第一个是false,就返回false否则返回第二个参数值
or
与and正好相反
not
返回true和false,false和nil会被当成false,其它为true

6控制结构

所有控制结构都以end作为结束标记

if:如果是true程序块就会被执行,例如:

function Myfun()
 a = 7
 if a<10 then
  print("<10")
 end
 if a>5 then
  print(">5")
 end
end

结果:

<10

>5

whilerepeat:都可以循环执行一段脚本(while先判断,repeat后判断(保证程序至少执行一次))

for:可以让用户根据表达式的值有限次地执行一段脚本

for index=1,10  do

     print(index)

end

for后需要提供变量值范围,遍历这个范围的每个值的同时程序块被执行,end结束

break:可以从循环控制结构中强制退出


今天就总结这里吧......

《LUA游戏开发实践指南》学习笔记1