local TableBG = import('Game.Data.TableBG') local PKSettingView = import('.PKSettingView') local PKCheckG = import('.PKCheckG') local MainRightPanelView = import('Game.View.MainRightPanelView') --- local M = {} setmetatable(M, { __index = MainView }) local pk_default_bg = 1 local pk_bg_config = { { id = 1, url = 'base/main_poker/bg/bg3', thumb = 'ui://Main_Poker/bg3' }, { id = 2, url = 'base/main_poker/bg/bg2', thumb = 'ui://Main_Poker/bg2' }, { id = 3, url = 'base/main_poker/bg/bg1', thumb = 'ui://Main_Poker/bg1' } } -- settingViewType:1跑得快:显示换牌,隐藏返回和解散 2超级拼十:隐藏解散和换牌 3其他:隐藏换牌,根据是否观战显示解散和返回 -- ex_defaultbg 自定义默认背景编号 -- ex_bgconfig 自定义的背景 function M:InitView(url, isHideIpAdds, settingViewType, ex_defaultbg, ex_bgconfig, isHideJiesan, settingUrl) UIPackage.AddPackage('base/main_poker/ui/Main_Poker') MainView.InitView(self, url, isHideIpAdds) local default_bg = ex_defaultbg or pk_default_bg local bg_config = ex_bgconfig or pk_bg_config -- 设置界面初始化方法 self.NewSettingView = function(self) local settingView = PKSettingView.new(self, 0, isHideJiesan, settingUrl, handler(self, self.UpdateCardSize)) return settingView end local _view = self._view TableBG.LoadTableBG(default_bg, self._room.game_id, self._root_view, bg_config) local rightpanel = self._view:GetChild('right_panel') if rightpanel then self._rightPanelView = MainRightPanelView.new(self, rightpanel) end self:InitXiPai() self:InitXiPai1() local checkG = self._view:GetChild('Btn_Check') if checkG then checkG.onClick:Set(function() local checkG = PKCheckG.new() checkG:Show() end) end self.com_notice = self._view:GetChild("com_notice") local viewList_witness = self._view:GetChild('comp_witness'):GetChild('list_players') viewList_witness:SetVirtual() viewList_witness.itemRenderer = function(index, obj) obj:GetChild('title').text = self._room.witness_player_list[index + 1].nick ImageLoad.Load(self._room.witness_player_list[index + 1].portrait, obj:GetChild('btn_head')._iconObject) end end function M:InitXiPai() self._xipaiPanel = UIPackage.CreateObjectFromURL("ui://Common/panel_handPoke") self._root_view:AddChild(self._xipaiPanel) local offset = get_offset(self._full_offset) self._xipaiPanel.width = GRoot.inst.width - (offset * 2) self._xipaiPanel.height = GRoot.inst.height self._xipaiPanel.x = offset self._xipaiPanel.visible = false self._handAnimCtr = self._xipaiPanel:GetController("anim") self._handAnimCtr.selectedIndex = 0 --self:PlayXiPai() end function M:PlayXiPai(xipaiCallBack) if self._xipaiPanel then coroutine.start(function() self._xipaiPanel.visible = true self._xipaiPanel:GetTransition("XiPai"):Play() self._handAnimCtr.selectedIndex = 1 coroutine.wait(3.5) self._handAnimCtr.selectedIndex = 0 self._xipaiPanel.visible = false if xipaiCallBack then xipaiCallBack() end end) end end function M:InitXiPai1() self._xipaiPanel1 = UIPackage.CreateObjectFromURL("ui://Common/panel_handPoke02") self._root_view:AddChild(self._xipaiPanel1) local offset = get_offset(self._full_offset) self._xipaiPanel1.width = GRoot.inst.width - (offset * 2) self._xipaiPanel1.height = GRoot.inst.height self._xipaiPanel1.x = offset self._xipaiPanel1.visible = false self._handAnimCtr1 = self._xipaiPanel1:GetController("anim") self._handAnimCtr1.selectedIndex = 0 end function M:PlayXiPai1(xipaiCallBack) if self._xipaiPanel1 then coroutine.start(function() self._xipaiPanel1.visible = true self._xipaiPanel1:GetTransition("XiPai"):Play() self._handAnimCtr1.selectedIndex = 1 coroutine.wait(3.5) self._handAnimCtr1.selectedIndex = 0 self._xipaiPanel1.visible = false if xipaiCallBack then xipaiCallBack() end end) end end function M:DoNoticeAnimation() self.noticeIndex = self.noticeIndex or 1 if not DataManager.GameNotice or #DataManager.GameNotice == 0 then return end local text_notice = self.com_notice:GetChild("text_notice") text_notice.text = DataManager.GameNotice[self.noticeIndex] local speed = 44 local time = text_notice.width / speed text_notice.x = self.com_notice.width local tween = text_notice:TweenMove(Vector2(-text_notice.width, text_notice.y), time):OnComplete(function() self:DoNoticeAnimation() end) tween:SetEase(EaseType.Linear) self.noticeIndex = self.noticeIndex + 1 if self.noticeIndex > #DataManager.GameNotice then self.noticeIndex = 1 end end function M:OnPlayerWitnessEnter(...) ViewUtil.PlaySound("PK", "base/main_majiang/sound/user_enter.mp3") local arg = { ... } local witnessPlayerList = arg[1] self._room.witness_player_list = witnessPlayerList local _room = DataManager.CurrenRoom local viewList_witness = self._view:GetChild('comp_witness'):GetChild('list_players') print("linemng", _room._flag_updateWitness, #_room.witness_player_list, viewList_witness.numItems) if viewList_witness.numItems == #_room.witness_player_list then viewList_witness:RefreshVirtualList() else viewList_witness.numItems = #_room.witness_player_list end end function M:OnPlayerWitnessLeave(...) ---- print("刷新托管数据=====") local arg = { ... } local player = arg[1] local witnessPlayerList = self._room.witness_player_list for i, _player in ipairs(witnessPlayerList) do if _player.aid == player then table.remove(witnessPlayerList, i) break end end local _room = DataManager.CurrenRoom local viewList_witness = self._view:GetChild('comp_witness'):GetChild('list_players') print("linemng", _room._flag_updateWitness, #_room.witness_player_list, viewList_witness.numItems) if viewList_witness.numItems == #_room.witness_player_list then viewList_witness:RefreshVirtualList() else viewList_witness.numItems = #_room.witness_player_list end end -- 设置界面的换牌回调,需要换牌的玩法settingViewType传1,重写这个方法 function M:UpdateCard(index) end function M:UpdateCardSize(index) end function M:Show() getmetatable(M).__index.Show(self) -- ViewUtil.PlaySound("RunFastNew_PK", "base/main_majiang/sound/game_backmusic.mp3") self:DoNoticeAnimation() end function M:Destroy() UIPackage.RemovePackage('base/main_poker/ui/Main_Poker') MainView.Destroy(self) end return M