大家先看效果
我把代码粘贴进来,大家可以直接看,注释写的很清楚的
require "app/views/newScene"
local MainScene = class("MainScene", cc.load("mvc").ViewBase)
-- numbersTable[string.format("%d", i), int转换字符转
-- 保存view的集合
local list = {}
-- 方块大小
local blockSize = cc.size(66, 66)
-- 屏幕的大小
local s = cc.Director:getInstance():getWinSize()
local Menu
-- 按住后的位置
local downList ={}
local numList = {"2","8","4","2","4","4","8","2","32","2", "2", "16","16","2","4","8","8"
,"8","4","2","8","4","8","32","4" }
local time = 30
local timeLable
-- 数字的背景颜色
local numbersTable = {}
numbersTable['2'] = cc.c3b(251,232,115) --2
numbersTable['8'] = cc.c3b(240,108,0) --8
numbersTable['4'] = cc.c3b(248,208,0) --4
numbersTable['16'] = cc.c3b(244,144,96) --16
numbersTable['32'] = cc.c3b(241,79,44) --32
-- 当前选下的值
local currentTag = 0
function MainScene:setPostion( ... )
-- 重新开始隐藏
if Menu ~= nil then
Menu:setVisible(false)
end
-- 要画View的下标(lua下表是从1开始的)
local position = 1
-- 1、创建图层
local layer = cc.Layer:create()
-- 2、找到中心方块的位置(s.width、height:屏幕宽/高 blockSize.width:方块宽高)
local x = (s.width - blockSize.width) / 2
local y = (s.height - blockSize.height) / 2
-- 4、中间间隙
local distance = 10
-- 3、j循环是画第几行 i是画每一行的5个, 画的基点是中心方块的位置 x,y, (中心方框是指连连看中间的方块)
for j=0, 4 do
for i=0,4 do
-- int转换字符串
-- print(numbersTable[string.format("%d", i)])
-- 找到中心方框的左上角
local currentX = x + blockSize.width / 2
local currentY = y + blockSize.height / 2
if i < 2 then
-- x= -(方框方框个数 x 方框宽 + 间隙) y= (个数* 高 + 间隙)
currentX = currentX - (2 - i) * blockSize.width - (2 - i) * distance
currentY = currentY + (2 - j) * blockSize.height + (2 - j) * distance
elseif i == 2 then
-- 中间那一行