local ZPDef = ZPFramework.ZPImport("zp_base.luaScript.ZPDef") local ZPMessage = ZPFramework.ZPImport("zp_base.luaScript.Protocol.ZPMessage") local ZPFuc = ZPFramework.ZPImport("zp_base.luaScript.ZPFunctions") local ZPRoomPlayerView = ZPFramework.ZPFrameworkClassImprot("zp_base.luaScript.Views.Room.ZPRoomPlayerView") local hejiangRoomPlayerView = class("hejiangRoomPlayerView", ZPRoomPlayerView) function hejiangRoomPlayerView:ctor( ... ) hejiangRoomPlayerView.super.ctor(self) end function hejiangRoomPlayerView:loadUI() local ui = loadUI("zp_hejiang/res/ui/ui_fangjian/hejiang_ui_PlayerView.ui"); self.ui = ui; self:addChild(ui); end function hejiangRoomPlayerView:onEnter() hejiangRoomPlayerView.super.onEnter(self) end function hejiangRoomPlayerView:initPlayerNodes() -- 玩家节点名称模板 local names = { player = "Layout_player_%d", -- 头像绿圈根节点 head = "ImageView_head_%d", -- 头像 headBoarder = "ImageView_head_border_%d", --头像边 name = "Text_Name_%d", -- 名字 score = "TextBMFont_Score_%d", -- 总分数 banker = "ImageView_banker_%d", -- 庄家 owner = "ImageView_owner_%d", --房主 readyState = "ImageView_ready_%d", -- 准备 headInfo = "Layout_headInfo_%d", --个人信息点击触发框 offLine = "ImageView_offLine_%d", --离线标志 --其他节点 tip = "ImageView_tip_%d", --提示操作图 huxi = "TextBMFont_huxi_%d", --胡息 clock = "ImageView_clock_%d", --闹钟 txtClocl = "TextBMFont_clock_%d", --闹钟时间 bao = "ImageView_bao_%d", --爆 offLineTime = "Text_offLineTime_%d", --离线时间 offLineTimeBg = "ImageView_txkYY_%d", --离线时间背景 leftCardBg = "ImageView_LeftCardBg_%d", --剩余手牌背景 leftCardNum = "TextBMFont_LeftCardNum_%d", --剩余手牌数量 arrow = "ImageView_arrow_%d", --箭头 tuoguan = "ImageView_tuoguan_%d", --托管标志 } self.allNodes = {} self.headSize = {} for i = 1,ZPDef.GameMaxPlayer do local nodes = {} --玩家根节点 local namePlayer = string.format(names.player,i) local nodePlayer = self.ui.Items[namePlayer] nodes.player = nodePlayer --头像 local nameHead = string.format(names.head,i) local nodeHead = self.ui.Items[nameHead] nodes.head = nodeHead nodeHead:setTouchEnabled(true) nodeHead:registerClick(function() self:onClickHead(i) end) local headBoarder = string.format(names.headBoarder,i) local nodeheadBoarder = self.ui.Items[headBoarder] nodes.headBoarder = nodeheadBoarder -- 需要记录头像的原始尺寸 if not self.headSize.width then self.headSize.width = nodeHead:getContentSize().width self.headSize.height = nodeHead:getContentSize().height end --昵称 local nickName = string.format(names.name,i) local nodeName = self.ui.Items[nickName] nodes.name = nodeName nodeName:setText("") --总分 local nickScore = string.format(names.score,i) local nodeScore = self.ui.Items[nickScore] nodes.score = nodeScore --庄家 local nameBanker = string.format(names.banker,i) local nodeBanker = self.ui.Items[nameBanker] nodes.banker = nodeBanker nodes.banker.pos = nodeBanker:getPosition() --房主 local nameOwner = string.format(names.owner,i) local nodeOwner = self.ui.Items[nameOwner] nodes.owner = nodeOwner nodes.owner.pos = nodeOwner:getPosition() --准备 local nameReadyState = string.format(names.readyState,i) local nodeReadyState = self.ui.Items[nameReadyState] nodes.readyState = nodeReadyState --头像信息 local headInfo = string.format(names.headInfo,i) local nodeheadInfo = self.ui.Items[headInfo] nodes.headInfo = nodeheadInfo --离线信息 local offLine = string.format(names.offLine,i) local nodeoffLine = self.ui.Items[offLine] nodes.offLine = nodeoffLine --tip local nameTip = string.format(names.tip,i) local nodeTip = self.ui.Items[nameTip] nodes.tip = nodeTip --胡息 local nameHuxi = string.format(names.huxi,i) local nodeHuxi = self.ui.Items[nameHuxi] nodes.huxi = nodeHuxi --爆 local nameBao = string.format(names.bao,i) local nodeBao = self.ui.Items[nameBao] nodes.bao = nodeBao --闹钟 local nameClock = string.format(names.clock,i) local nodeClock = self.ui.Items[nameClock] nodes.clock = nodeClock --闹钟时间 local nametxtClock = string.format(names.txtClocl,i) local nodetxtClock = self.ui.Items[nametxtClock] nodes.txtclock = nodetxtClock --离线时间 local nameoffLineTime = string.format(names.offLineTime,i) local nodeoffLineTime = self.ui.Items[nameoffLineTime] nodes.offLineTime = nodeoffLineTime --离线时间背景 local nameoffLineTimeBg = string.format(names.offLineTimeBg,i) local nodeoffLineTimeBg = self.ui.Items[nameoffLineTimeBg] nodes.offLineTimeBg = nodeoffLineTimeBg nodes.offLineTimeBg:setVisible(false) --剩余手牌背景 local nameleftCardBg = string.format(names.leftCardBg,i) local nodeleftCardBg = self.ui.Items[nameleftCardBg] nodes.leftCardBg = nodeleftCardBg --剩余手牌数量 local nameleftCardNum = string.format(names.leftCardNum,i) local nodeleftCardNum = self.ui.Items[nameleftCardNum] nodes.leftCardNum = nodeleftCardNum local namearrow = string.format(names.arrow,i) local nodearrow = self.ui.Items[namearrow] nodes.arrow = nodearrow --托管状态 local nametuoguan = string.format(names.tuoguan,i) local nodetuoguan = self.ui.Items[nametuoguan] nodes.tuoguan = nodetuoguan self.allNodes[i] = nodes end self:setAllClockVisible(false) self:setOwnerVisible() self:stopAndHideBaoAnim() self:setXiaoJiaFlagVis(false) self:hideLeftCard()--隐藏剩余牌 --小家不显示胡数 self.ui.Items.ImageView_hushu_2:setVisible(false) self.ui.Items.TextBMFont_huxi_2:setVisible(false) end function hejiangRoomPlayerView:setArrowStateVisible(bVisible) for i = 1,ZPDef.GameMaxPlayer do self.allNodes[i].arrow:setVisible(bVisible) self.allNodes[i].arrow:stopAllActions() local txt = self.allNodes[i].arrow:getChildren()[1] if txt then txt:stopAllActions() end end end function hejiangRoomPlayerView:showArrowByViewId(viewId,bVisible,severTime) if self.allNodes[viewId] and self.allNodes[viewId].arrow and ZPFuc.getIsDelayTimeTip() then local txt = self.allNodes[viewId].arrow:getChildren()[1] self.allNodes[viewId].arrow:stopAllActions() if txt then txt:stopAllActions() local str = string.format("拖延%02d:%02d",0,0) txt:setText(str) end local function updateTime() local time = severTime or 0 local seq = cc.Sequence:create(cc.DelayTime:create(1.0),cc.CallFunc:create(function () time = time + 1 local min = math.floor(time/60) local sec = time - 60 * min local str = string.format("拖延%02d:%02d",min,sec) if txt then txt:setText(str) end end)) txt:runAction(cc.RepeatForever:create(seq)) end if bVisible then local delTime = 9 if severTime and severTime >= 8 then severTime = severTime - 9 delTime = 0 end self.allNodes[viewId].arrow:runAction(cc.Sequence:create(cc.DelayTime:create(delTime),cc.CallFunc:create(function () self.allNodes[viewId].arrow:setVisible(bVisible) updateTime() end))) else self.allNodes[viewId].arrow:setVisible(bVisible) end end end --托管标签状态显示 function hejiangRoomPlayerView:setTuoGuanFlagVisible(flag) flag = flag or false for i = 1,4 do if self.allNodes[i] and self.allNodes[i].tuoguan then self.allNodes[i].tuoguan:setVisible(flag) end end end function hejiangRoomPlayerView:showTuoGuanByViewId(viewId,bVisible) if not viewId then return end bVisible = bVisible or false if self.allNodes[viewId] and self.allNodes[viewId].tuoguan then self.allNodes[viewId].tuoguan:setVisible(bVisible) end end return hejiangRoomPlayerView