-- 玩法界面 local HelpView = class("HelpView", cc.UIView) function HelpView:ctor() HelpView.super.ctor(self); local ui = loadUI("res/ui/ui_dating/ui_bangzhu.ui") self.ui = ui self:addChild(ui) --当前选中游戏类型 self.choiceGameType = 1 --点击次数 self.touchNum = 1 --类型点击次数 self.touchTypeNum = 1 --默认进来的类型 self.defaultGameType = GAME_TYPE.MJ self:initGames() end function HelpView:initGames() self.games = {} end function HelpView:onEnter() HelpView.super.onEnter(self) self.ui.Items.Layout_Title:setVisible(false) self.ui.Items.Layout_Content:setVisible(false) self.ui.Items.Layout_Space:setVisible(false) self.ui.Items.Layout_game_btn:setVisible(false) --关闭 self.ui.Items.Button:registerClick(handler(self , self.onClickClose)) --扑克玩法 self.ui.Items.Button_game_type_1:registerClick(function () self:onClickGameType(GAME_TYPE.PK) end) --字牌玩法 self.ui.Items.Button_game_type_2:registerClick(function () self:onClickGameType(GAME_TYPE.ZP) end) --麻将玩法 self.ui.Items.Button_game_type_3:registerClick(function () self:onClickGameType(GAME_TYPE.MJ) end) --默认选中麻将类型 self:onClickGameType(self.defaultGameType) --[[ --初始化左边游戏按钮 self:createLeftGameBtn() --显示默认玩法规则说明 self:showHelpInfo()--]] end function HelpView:showHelpInfo() local uiScrollView = self.ui.Items.ScrollView; uiScrollView:removeAllChildren() uiScrollView:getInnerContainer():setAutoSize(true) if self.ruleText ~= -1 and self.ruleText ~= nil then for k,v in ipairs(self.ruleText) do local uiTitle = self:createTitle(v.title) uiScrollView:addChild(uiTitle) for kk,vv in ipairs(v.content) do local uiContent = self:createContent(vv) uiScrollView:addChild(uiContent) end end end uiScrollView:getVBar():setVisible(false) uiScrollView:jumpToTopOnSizeChanged() end --游戏根据sort排序 function HelpView:sortByGameSort() -- local gameList = app.serverConfigs.subGameList local gameList = app.serverConfigs:getSubGameList() local ttGameList = {} if not gameList then return ttGameList end for k,v in pairs(gameList) do if v.gameId and v.show then table.insert(ttGameList, v) end end table.sort(ttGameList, function(a, b) local numA = tonumber(a) local numB = tonumber(b) if numA ~= nil and numB ~= nil then return numA > numB else if a.sortIndex and b.sortIndex then return a.sortIndex < b.sortIndex else return false end end end) return ttGameList end function HelpView:createLeftGameBtn() local uiScrollView = self.ui.Items.ScrollView_left_btn; uiScrollView:removeAllChildren() uiScrollView:hideAllBar(); uiScrollView:getInnerContainer():setAutoSize(true) --左边游戏名字按钮单选集合 self.btnRadioManager = nil self.btnRadioManager = import("luaScript.Tools.RadioManager"):new() local idx = 1 local gameList = self:sortByGameSort() local uiTemplate = self.ui.Items.Layout_game_btn for k, gameInfo in pairsByKeys(gameList) do if gameInfo.gameId ~= nil and gameInfo.gameId ~= GAME_IDS.More and gameInfo.show == true then --更多游戏不显示按钮 --玩法类型 local gameConfig = getSubGameConfig(tonumber(gameInfo.gameId)) if gameConfig then local belongType = gameConfig.belongType if belongType == self.choiceGameType then if gameConfig.bSingleGame then for ruleID,ruleInfo in pairsByKeys(gameConfig.GameType) do --游戏是否属于当前选中类型 local uiItem = uiTemplate:getCopied() uiItem.Items = getUIItems(uiItem) uiItem.Items.Text_GameName:setColor(cc.c3b(49,67,81)) --默认将第一个游戏设置为选中状态 if idx == 1 then self.ruleText = self.games[tonumber(gameInfo.gameId * 10000 + tonumber(ruleID))] uiItem.Items.Button_name_bg:setBright(false) uiItem.Items.Text_GameName:setColor(cc.c3b(179,69,12)) end uiItem.Items.ImageView_name:setVisible(false) uiItem.Items.Text_GameName:setString(ruleInfo or "") uiItem.Items.Button_name_bg:registerClick(function () playBtnTagEffect() self.ruleText = self.games[tonumber(gameInfo.gameId) * 10000 + tonumber(ruleID)] self:updateGameNameImg(tonumber(gameInfo.gameId) * 10000 + tonumber(ruleID)) self:showHelpInfo() end) uiItem:setTag(tonumber(gameInfo.gameId)* 10000 + tonumber(ruleID)) uiScrollView:addChild(uiItem) idx = idx + 1 end else --游戏是否属于当前选中类型 local uiItem = uiTemplate:getCopied() uiItem.Items = getUIItems(uiItem) uiItem.Items.ImageView_name:setVisible(false) uiItem.Items.Text_GameName:setColor(cc.c3b(49,67,81)) uiItem.Items.Text_GameName:setString(gameInfo.gameName or "") --默认将第一个游戏设置为选中状态 if idx == 1 then self.ruleText = self.games[tonumber(gameInfo.gameId)] uiItem.Items.Button_name_bg:setBright(false) uiItem.Items.Text_GameName:setColor(cc.c3b(179,69,12)) end uiItem.Items.Button_name_bg:registerClick(function () playBtnTagEffect() self.ruleText = self.games[tonumber(gameInfo.gameId)] logD(self.ruleText) self:updateGameNameImg(tonumber(gameInfo.gameId)) self:showHelpInfo() end) uiItem:setTag(tonumber(gameInfo.gameId)) uiScrollView:addChild(uiItem) idx = idx + 1 end end end end end uiScrollView:jumpToTopOnSizeChanged() end function HelpView:createTitle(text) local ui = self.ui.Items.Layout_Title:getCopied() ui.Items = getUIItems(ui); ui.Items.Text_Title:setString(text) ui:setVisible(true) return ui; end function HelpView:createContent(text) local ui = self.ui.Items.Layout_Content:getCopied() ui.Items = getUIItems(ui); ui.Items.Text_Content:setString(text) ui:requestDoLayout() ui:doLayout() ui:setVisible(true) return ui end function HelpView:createSpace() local ui = self.ui.Items.Layout_Space:getCopied() ui:setVisible(true) return ui; end -- 关闭响应函数 function HelpView:onClickClose() playBtnCloseEffect() self:removeFromParent() end --更新游戏名图片 function HelpView:updateGameNameImg(gameID) local uiScrollView = self.ui.Items.ScrollView_left_btn; local childrens = uiScrollView:getChildren() local childNum = table.nums(childrens) local gameRule = 0 if gameID > 10000 then gameRule = math.floor(gameID%10000) gameID = math.floor(gameID/10000) end local gameConfig = getSubGameConfig(gameID) for k, leftBtn in pairs(childrens) do local btnTag = leftBtn:getTag() local gameRuleTag = 0 local gameIDTag = tonumber(btnTag) local bSingleGame = false if btnTag > 10000 then bSingleGame = true gameRuleTag = math.floor(btnTag%10000) gameIDTag = math.floor(btnTag/10000) end if gameIDTag == gameID and gameRuleTag == gameRule then leftBtn.Items.Button_name_bg:setBright(false) leftBtn.Items.Text_GameName:setColor(cc.c3b(179,69,12)) else leftBtn.Items.Button_name_bg:setBright(true) leftBtn.Items.Text_GameName:setColor(cc.c3b(49,67,81)) end end end --更新游戏名背景按钮状态 function HelpView:updateGameNameBgStatus() end --选择游戏类型 function HelpView:onClickGameType(value) if self.touchTypeNum > 1 then playBtnTagEffect() end self.touchTypeNum = self.touchTypeNum + 1 self.choiceGameType = value for i = 1, 3 do local btnNode = string.format("Button_game_type_%d", i) if i == value then self.ui.Items[btnNode]:setBright(false) else self.ui.Items[btnNode]:setBright(true) end end --重新创建左边游戏名字按钮 self:createLeftGameBtn() --显示游戏玩法规则说明 self:showHelpInfo() end return HelpView