表的值可以是数字、字符串,也可以还是表。套一层就是二维,套两层还能继续。装备列表、技能配置、掉落表,全靠这个。
本课互动训练:专属动画 + 选择题测验。 打开 第 06 课 · 动画闯关,先看动画,再完成 3 道选择题。
local t = {
{1, 2, 3},
{4, 5, 6},
}
print(t[1][1]) --> 1
print(t[2][3]) --> 6
读法:t[1] 取出内层第一个表,[1] 再取内层第 1 个值。像打开收纳盒的第 2 个抽屉,抽屉里还有小盒子。
游戏里发装备常要「给什么、给几个」:
local items = {
{"木剑", 1},
{"屠龙", 1},
{"绿色项链", 1},
{"骑士手镯", 2},
}
for i = 1, #items do
GiveItem(player, items[i][1], items[i][2])
end
items[i][1] 是名字,items[i][2] 是数量。比写十遍 GiveItem 清爽一个数量级。
local player = {
name = "大战士",
level = 50,
bag = {"木剑", "传送石"},
att = {
hp = 500,
dc = 50,
atk = 120,
},
}
print(player.name) --> 大战士
print(player.att.hp) --> 500
print(player.bag[2]) --> 传送石
一层点到底,逻辑路径非常直观。以后接接口、读配置,本质上就是在拆这种树。
| 你想要 | 写法 |
|---|---|
| 角色名 | player.name 或 player["name"] |
| 攻击力 | player.att.atk 或 player["att"]["atk"] |
| 背包第一件 | player.bag[1] |
数组用数字下标,字典用名字;混用时看那一层是什么类型。
套到三四层能跑,但可读性会塌。工程习惯:
att、bag,不要 t1、tmp)print(player.att) 看结构,再取具体字段今日练习:用嵌套表搭一个「有 3 件装备、每件有数量」的背包,循环打印「名字 x 数量」。再搭一个 player.att.hp 结构,只打印 HP。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
会判断了,就能做会回话的 NPC。今天拼一个简易 GM 工具界面。 一、用 say 吐出界面 客户端编辑器 Ctrl + F…
与或非听起来玄,其实就是三张通行证。 一、and(与)= 过安检 机票 + 身份证 ,少一样不让过。后面还能无限加条件。 二…
判断 = 比较 + 分支。今天把三种 if 写法、以及工程里最好用的「防卫语句」一次练透。 一、三种判断结构 elseif …
表会建、会取、会增删改查,最后一环是 遍历 。本篇先把坑标出来,下节课正式拆迭代器。 本课互动训练 :专属动画 + 选择题测…
「我只改了 b,a 怎么变了?」——这是表引用问题的标准嚎叫。今天把钥匙和锁彻底讲清。 本课互动训练 :专属动画 + 选择题…
理论够了,进游戏干一票:用一张表,存下角色的名、级、包、属性,并用它驱动「给我装备」。 本课互动训练 :专属动画 + 选择题…