local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJRoomPlayerView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomPlayerView") local huamajiangRoomPlayerView = class("huamajiangRoomPlayerView", MJRoomPlayerView) function huamajiangRoomPlayerView:ctor() huamajiangRoomPlayerView.super.ctor(self); end function huamajiangRoomPlayerView:loadUI() local ui = loadUI("mj_huamajiang/res/ui_fangjian/mj_huamajiang_playerView.ui"); self.ui = ui; self:addChild(ui); end function huamajiangRoomPlayerView:onEnter() self:loadUI() self:init() self:resetTuoGuanShow() end -- 托管显示 function huamajiangRoomPlayerView:resetTuoGuanShow() for i=1,4 do self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false) end end function huamajiangRoomPlayerView:showTuoGuanByViewId(viewId,bVisible) self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible) end function huamajiangRoomPlayerView: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", --爆 piao = "ImageView_piao_%d", --飘 baoAnim = "Layout_baoAnim_%d", --爆牌特效 hu = "ImageView_hu_%d", --胡牌 viewOrder = "ImageView_ViewId_%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) -- 需要记录头像的原始尺寸 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 namePiao = string.format(names.piao,i) local nodePiao = self.ui.Items[namePiao] nodePiao:setVisible(false) nodes.piao = nodePiao --爆 local nameBao = string.format(names.bao,i) local nodeBao = self.ui.Items[nameBao] nodeBao:setVisible(false) nodes.bao = nodeBao --胡 local nameHu = string.format(names.hu,i) local nodeHu = self.ui.Items[nameHu] nodeHu:setVisible(false) nodes.hu = nodeHu --座位 local nameViewOrder = string.format(names.viewOrder, i); local nodeViewOrder = self.ui.Items[nameViewOrder] nodes.viewOrder = nodeViewOrder --报牌动画 local nameBaoAnim = string.format(names.baoAnim, i); local nodeBaoAnim = self.ui.Items[nameBaoAnim]; nodeBaoAnim:setVisible(false); nodeBaoAnim:setScale(0.9); nodes.baoAnim = nodeBaoAnim; 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 function huamajiangRoomPlayerView:initChatComponent() huamajiangRoomPlayerView.super.initChatComponent(self); local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1 local propEnable = tonumber(loadUserInfo("propEnable")) or 1 self.chatComponentView:setVoiceEnabled(voiceEnable==1) self.chatComponentView:setPropEnabled(propEnable==1) end function huamajiangRoomPlayerView:onChangeChatEnable() if not self.chatComponentView or tolua.isnull(self.chatComponentView) then return end local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1 local propEnable = tonumber(loadUserInfo("propEnable")) or 1 self.chatComponentView:setVoiceEnabled(voiceEnable==1) self.chatComponentView:setPropEnabled(propEnable==1) end function huamajiangRoomPlayerView:updatePlayerInfo( index ) huamajiangRoomPlayerView.super.updatePlayerInfo(self, 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 not memberInfo then return ; end local seat = memberInfo.nSeatId; if nodes.viewOrder then nodes.viewOrder:loadTexture(string.format("mj_huamajiang/res/zy_fangjian/player/huamajiang_seat_%d.png", (seat + 1)), 0); end end function huamajiangRoomPlayerView:playBaoAnim(view) if self.allNodes[view] and self.allNodes[view].baoAnim then self.allNodes[view].bao:setVisible(true); self.allNodes[view].baoAnim:setVisible(true) -- 加载第一张图片 local nodeImage = cc.ImageView:createNode() nodeImage:loadTexture(string.format("mj_huamajiang/res/zy_fangjian/anim/bao/huamajiang_bao_%d.png",1)) self.allNodes[view].baoAnim:addChild(nodeImage) local baoSize = self.allNodes[view].baoAnim: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("mj_huamajiang/res/zy_fangjian/anim/bao/huamajiang_bao_%d.png",indexFace) if not tolua.isnull(nodeImage) then nodeImage:loadTexture(name, 0) end end)) local action2 = cc.Repeat:create(action1, indexMax) nodeImage:stopAllActions() nodeImage:runAction(cc.RepeatForever:create(action2)); nodeImage:setVisible(true) end end function huamajiangRoomPlayerView: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 if self.allNodes[i] and self.allNodes[i].baoAnim then self.allNodes[i].baoAnim:setVisible(false) self.allNodes[i].baoAnim:removeAllChildren() end end end -- 显示飘标志 function huamajiangRoomPlayerView:showPiao(viewId,bVisible) if self.allNodes[viewId] and self.allNodes[viewId].piao then self.allNodes[viewId].piao:setVisible(bVisible) else logE("huamajiangRoomPlayerView:showPiao ->viewId is not exit"..viewId) end end -- 清理所有飘标志 function huamajiangRoomPlayerView:clearAllPiao() for i=1,4 do if self.allNodes[i] and self.allNodes[i].piao then self.allNodes[i].piao:setVisible(false) end end end function huamajiangRoomPlayerView:showHu( viewId, bVisible ) if self.allNodes[viewId] and self.allNodes[viewId].hu then self.allNodes[viewId].hu:setVisible(bVisible); end if bVisible and self.allNodes[viewId] and self.allNodes[viewId].bao then self.allNodes[viewId].bao:setVisible(false); end end function huamajiangRoomPlayerView:clearHu( ) for i=1,4 do if self.allNodes[i] and self.allNodes[i].hu then self.allNodes[i].hu:setVisible(false) end end end function huamajiangRoomPlayerView:refreshPlayerScore (scoreInfo) for k, v in ipairs(scoreInfo) do if self.allNodes[v.viewId] and self.allNodes[v.viewId].score then self.allNodes[v.viewId].score:setString(v.totalScore); end end end return huamajiangRoomPlayerView