用Lua实现Unity连连看游戏要点记录:
游戏功能描述,通过游戏关卡配置从水果类型中,生成指定类型水果及其数量,位置随机。连线要求最多支持两个拐点,三段线相连通才能消除。
- 创建游戏关卡数据结构
创建关卡水果数据结构 ROFruitData
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
---水果连连看水果数据
---@class ROFruitData
local m = {
---@type number 配置ID
cid = nil,
---@type boolean 是否消除
isClean = false,
---@type number 所在位置
pos = 0,
---@type number 行
x = 0,
---@type number 列
y = 0,
}
function m.New(cid,clean)
local o = Clone(m)
o:Init(cid,clean)
return o
end
function m:Init(cid,clean)
self.cid = cid
self.isClean = clean
end
---@param pos number
function m:SetPos(pos)
self.pos = pos
local x,y = self:GetX_Y()
self.x = x
self.y = y
end
---@return CfgRestaurantOperationFruitListData
function m:GetCfgData()
if self.cid > 0 then
return CfgRestaurantOperationFruitListTable[self.cid]
end
return nil
end
---通过Pos获取格子位置 (每行10个格子)
---@return number,number 行,列
function m:GetX_Y()
local x = math.ceil(self.pos / 10)
local y = self.pos - 10 * (x-1)
return x,y
end
return m