玩法示例:
图1为初始游戏场景(只有一个游戏场景),4x4个格子上随机产生两个数,数字2或4。
图2:玩家向左滑动屏幕,整体向左移动,相邻相同数字进行相加,并再随机产生2或4的数字。当16个格子充满数字且滑动屏幕无法进行数字相加时,游戏失败。当最大数为2048时,游戏胜利。
场景:一个游戏场景
界面UI:游戏标题标签,游戏最高分和当前游戏分数标签,重新开始游戏的button
代码分析:
首先,背景,标签,按钮的添加,
4X4的格子逻辑实现:
function initGrid(m,n)
local grid = {}
for i=1,m do
if not grid[i] then
grid[i] = {}
end
for j=1,n do
grid[i][j] = 0
end
end
randomNum(grid) --随机产生一个初始数
randomNum(grid)
return grid
end
初始随机数的产生:
local function randomNum(grid)
local i,j = getRandomZeroPos(grid)
if i and j then
local r = math.random()
if r<0.9 then