local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJRoomPlayerView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomPlayerView") local luzhouguiRoomPlayerView = class("luzhouguiRoomPlayerView", MJRoomPlayerView) function luzhouguiRoomPlayerView:ctor() luzhouguiRoomPlayerView.super.ctor(self); end function luzhouguiRoomPlayerView:loadUI() local ui = loadUI("mj_luzhougui/res/ui_fangjian/mj_luzhou_playerView.ui"); self.ui = ui; self:addChild(ui); end function luzhouguiRoomPlayerView:onEnter() cc.SpriteFrameCache:getInstance():addSpriteFramesWithFile("mj_luzhougui/res/zy_fangjian/mj_luzhou_baoani.plist") self:loadUI() self:init() self:resetTuoGuanShow() end -- 托管显示 function luzhouguiRoomPlayerView:resetTuoGuanShow() for i=1,4 do self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false) end end function luzhouguiRoomPlayerView:showTuoGuanByViewId(viewId,bVisible) self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible) end function luzhouguiRoomPlayerView:init() local names = { player = "Layout_player_%d", -- 头像绿圈根节点 head = "ImageView_head_%d", -- 头像 -- headBoarder = "ImageView_head_border_%d", --头像边 name = "Text_Name_%d", -- 名字 score = "Text_Score_%d", -- 总分数 banker = "ImageView_banker_%d", -- 庄家 readyState = "ImageView_ready_%d", -- 准备 headInfo = "Layout_PlayerInfo_%d", --个人信息点击触发框 offLine = "ImageView_offLine_%d", --离线标志 --其他节点 arrow = "ImageView_arrow_%d", -- 指示器 tip = "ImageView_tip_%d", --提示操作图 huxi = "Text_huxi_%d", --胡息 qihu = "ImageView_qihu_%d", --弃胡 bao = "ImageView_bao_%d", --爆 } self.allNodes = {} self.headSize = {} for i = 1,4 do--LHQ_GAME_CONST.LHQ_GAME_CONST_PLAYER do local nodes = {} --玩家根节点 local namePlayer = string.format(names.player,i) local nodePlayer = self.ui.Items[namePlayer] -- nodePlayer:setVisible(false) 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] nodeBanker:setVisible(false) nodes.banker = nodeBanker --准备 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 --指示器 -- local nameArrow = string.format(names.arrow,i) -- local nodeArrow = self.ui.Items[nameArrow] -- nodes.arrow = nodeArrow --tip local nameTip = string.format(names.tip,i) local nodeTip = self.ui.Items[nameTip] nodes.tip = nodeTip --huxi local nameHuxi = string.format(names.huxi,i) local nodeHuxi = self.ui.Items[nameHuxi] nodes.huxi = nodeHuxi --弃胡 local nameQiHu = string.format(names.qihu,i) local nodeQiHu = self.ui.Items[nameQiHu] nodeQiHu:setVisible(false) nodes.qihu = nodeQiHu --爆 local nameBao = string.format(names.bao,i) local nodeBao = self.ui.Items[nameBao] nodeBao:setVisible(false) nodes.bao = nodeBao self.allNodes[i] = nodes end self:initChatComponent() self.PropAniManager = import("luaScript.Tools.PropAniPlayer"):new(self.ui) --发送道具 self:bindEvent(app.room,"showProp" , handler(self , self.showProp)); self:bindEvent(app , MJDefine.MJEvent.ChangeChatEnable , handler(self , self.onChangeChatEnable)) end -- 更新玩家基本信息 : 昵称、头像 -- index :是玩家展示出来的座位号 function luzhouguiRoomPlayerView:updatePlayerInfo(index) logE("luzhouguiRoomPlayerView:updatePlayerInfo() index = ", index) local nodes = self.allNodes[index] local nUserId = app.room.seatShowList[index] local roomInfo = app.room.roomInfo local memberInfo = app.room.roomInfo.memberList[nUserId] if roomInfo.isEapCreate == 1 then local playerInfo = G_EapSdkMgr:getTableUserBaseInfo(nUserId) if playerInfo and memberInfo then logD("获取电竞Sdk的用户信息并赋值", table.tostring(playerInfo)) local nPID = playerInfo.nPID --平台账号 id local strNickname = playerInfo.strNickname --平台昵称 local strAvatar = playerInfo.strAvatar --头像url local userInfo = memberInfo.userInfo userInfo.headimgurl = strAvatar userInfo.nickname = strNickname end end if memberInfo then --[[if memberInfo.nPlayerFlag == LHQ_GAME_CONST.LHQ_GAME_CONST_ONLOOKER then return end--]] nodes.player:setVisible(true) local userInfo = json.decode(memberInfo.userInfo) if not userInfo then return end -- 玩家名字 local nickname = userInfo.nickname nickname = getSubStringNickname(nickname) nodes.name:setText(tostring(nickname)) nodes.score:setText(tostring(memberInfo.nTotalMoney)) -- 玩家头像 local nodeHead = nodes.head; --先设置默认头像 local width = nodeHead:getContentSize().width setPlayerHeadImage(nUserId, userInfo.headimgurl, nodeHead) else nodes.player:setVisible(false) nodes.offLine:setVisible(bVisible) end end function luzhouguiRoomPlayerView:playBaoAnim(view) if self.allNodes[view] and self.allNodes[view].bao then self.allNodes[view].bao:setVisible(true) -- 加载第一张图片 local nodeImage = cc.ImageView:createNode() nodeImage:loadTexture(string.format("luzhou_bao_%d",1)) self.allNodes[view].bao:addChild(nodeImage) local baoSize = self.allNodes[view].bao:getContentSize() nodeImage:setPosition(cc.p(baoSize.width/2-1,baoSize.height/2-2)) -- 循环修改图片 local everyFrame = 0.1 local indexFace = 0 local indexMax = 7 local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function () indexFace = indexFace + 1 if 0 < indexFace and indexFace <= indexMax then else indexFace = 1 end local name = string.format("luzhou_bao_%d.png",indexFace) if not tolua.isnull(nodeImage) then nodeImage:loadTexture(name, cc.TextureResType.plistType) end end)) local action2 = cc.Repeat:create(action1, indexMax) nodeImage:stopAllActions() nodeImage:runAction(cc.RepeatForever:create(action2)); nodeImage:setVisible(true) end end function luzhouguiRoomPlayerView:clearBao() for i=1,4 do if self.allNodes[i] and self.allNodes[i].bao then self.allNodes[i].bao:setVisible(false) self.allNodes[i].bao:removeAllChildren() end end end return luzhouguiRoomPlayerView