|
- -- 玩法界面
- 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
|