本文主要是介绍【quick-cocos2d-lua】 棋牌-加入房间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
界面分析:房间号共6位,UI界面上部分是6个Label,用来显示用户输入的房间号,下面共12个按钮,其中有10个按钮数字按钮,用来输入房间号,输入的数字显示在上面的Label上,删除按钮则删除一位已输入的数字,清除则删除所有已输入的数字。当6个数字输入完时发送给服务器进行验证。
逻辑分析:
①首先6个label都是空的,当按一下某个按钮,第一个label就会显示按钮的数字,再按按钮,则第二个label显示数字,即按第n次时,第n个label显示数字(当n小于7时)。所以可以用一个table用来记录已输入的数字,给每个数字button添加一个响应函数,点击时,把数字加入table,如果小于7,则得到table的最后一个值,显示到label上,并判断table是否有6个数字,如果是6个的话则发消息给服务器;若大于7,则从table移除。
②删除时,获得table的长度,即label有数字的最后一位,将label清空,再将table最后一位数据移除
③清除时,把所有有数字的label清空,再将table清空。
local pressNumber = {} --保存输入的数字
local labelNumber = {} --6个显示数字的labelfunction friendNumber:btn_close()local btn_close = cc.uiloader:seekNodeByPath(self.ccsNode, "Panel_18/btn_close") btn_close:onButtonClicked(function()pressNumber = {}self:removeFromParent()end)
end--6个标签,显示输入的房间号
function friendNumber:label_Number()for i = 1,6 dolocal label = cc.uiloader:seekNodeByPath(self.ccsNode, "Panel_18/Label_"..i) labelNumber[i] = labelend
end--数字按钮,输入房间号
function friendNumber:btn_number()for i = 0,9 dolocal btn_number = cc.uiloader:seekNodeByPath(self.ccsNode, "Panel_18/btn_num"..i) btn_number:onButtonClicked(function()self:add_Number(i)end)end
endfunction friendNumber:btn_delete()local btn_delete = cc.uiloader:seekNodeByPath(self.ccsNode, "Panel_18/btn_delete") btn_delete:onButtonClicked(function()self:delete_Number()end)
endfunction friendNumber:btn_clear()local btn_clear = cc.uiloader:seekNodeByPath(self.ccsNode, "Panel_18/btn_clear") btn_clear:onButtonClicked(function()self:clear_Number()end)
endfunction friendNumber:add_Number(i) table.insert(pressNumber,i)local posIndex = table.getn(pressNumber)if posIndex < 7 then--dump(pressNumber)self:updateLabelNum(posIndex,i)self:checkNumber()return trueelsetable.remove(pressNumber)return falseend
endfunction friendNumber:delete_Number()local posIndex = table.getn(pressNumber)if posIndex > 0 thenself:updateLabelNum(posIndex,"")table.remove(pressNumber)endreturn 0
endfunction friendNumber:clear_Number()local numLen = table.getn(pressNumber)for i = 1,numLen doself:updateLabelNum(i,"")endpressNumber = {}
endfunction friendNumber:updateLabelNum(posIndex,num)local label = labelNumber[posIndex]label:setString(tostring(num))
endfunction friendNumber:checkNumber()local numLen = table.getn(pressNumber)if numLen == 6 thenprint("已有6个数")local roomNumStr = pressNumber[1]..pressNumber[2]..pressNumber[3]..pressNumber[4]..pressNumber[5]..pressNumber[6]local roomNum = tonumber(roomNumStr)friendRoomHandler:checkRoomJoin(201,roomNum)end
endreturn friendNumber
这篇关于【quick-cocos2d-lua】 棋牌-加入房间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!