local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJRoomPlayerView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomPlayerView") local bazhongRoomPlayerView = class("bazhongRoomPlayerView", MJRoomPlayerView) function bazhongRoomPlayerView:ctor() bazhongRoomPlayerView.super.ctor(self); end function bazhongRoomPlayerView:loadUI() local ui = loadUI("mj_bazhong/res/ui_fangjian/mj_bazhong_playerView.ui"); self.ui = ui; self:addChild(ui); end function bazhongRoomPlayerView:onEnter() self:loadUI() self:init() self:resetTuoGuanShow() end -- 托管显示 function bazhongRoomPlayerView:resetTuoGuanShow() for i=1,4 do self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false) end end function bazhongRoomPlayerView:showTuoGuanByViewId(viewId,bVisible) self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible) end function bazhongRoomPlayerView: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", --飘 --bozimo = "ImageView_bozimo_%d", --博自摸 que = "ImageView_que_%d", --弃胡 huorder = "ImageView_huOrder_%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 nameQue = string.format(names.que,i) local nodeQue = self.ui.Items[nameQue] nodeQue:setVisible(false) nodes.que = nodeQue --爆 local nameBao = string.format(names.bao,i) local nodeBao = self.ui.Items[nameBao] nodeBao:setVisible(false) nodes.bao = nodeBao --[[--飘 local namePiao = string.format(names.piao,i) local nodePiao = self.ui.Items[namePiao] nodePiao:setVisible(false) nodes.piao = nodePiao --博自摸 local nameBoZiMo = string.format(names.bozimo,i) local nodeBoZiMo = self.ui.Items[nameBoZiMo] nodeBoZiMo:setVisible(false) nodes.bozimo = nodeBoZiMo--]] --胡顺序 local nameHuorder = string.format(names.huorder,i) local nodeHuorder = self.ui.Items[nameHuorder] nodeHuorder:setVisible(false) nodes.huorder = nodeHuorder 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 bazhongRoomPlayerView:initChatComponent() bazhongRoomPlayerView.super.initChatComponent(self); local voiceEnable = tonumber(loadUserInfo("PingBiYuYinKG_" .. (MJDefine.GameID or app.gameId))) or 1 local propEnable = tonumber(loadUserInfo("HuDongBiaoQingKG_" .. (MJDefine.GameID or app.gameId))) or 1 self.chatComponentView:setVoiceEnabled(voiceEnable==1) self.chatComponentView:setPropEnabled(propEnable==1) end function bazhongRoomPlayerView:onChangeChatEnable() if not self.chatComponentView or tolua.isnull(self.chatComponentView) then return end local voiceEnable = tonumber(loadUserInfo("PingBiYuYinKG_" .. (MJDefine.GameID or app.gameId))) or 1 local propEnable = tonumber(loadUserInfo("HuDongBiaoQingKG_" .. (MJDefine.GameID or app.gameId))) or 1 self.chatComponentView:setVoiceEnabled(voiceEnable==1) self.chatComponentView:setPropEnabled(propEnable==1) end function bazhongRoomPlayerView: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 bazhongRoomPlayerView: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 -- 显示飘标志 function bazhongRoomPlayerView:showPiao(viewId,bVisible) if self.allNodes[viewId] and self.allNodes[viewId].piao then self.allNodes[viewId].piao:setVisible(bVisible) else logE("bazhongRoomPlayerView:showPiao ->viewId is not exit"..viewId) end end -- 清理所有飘标志 function bazhongRoomPlayerView: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 bazhongRoomPlayerView:showBoZiMo(viewId,bVisible) if self.allNodes[viewId] and self.allNodes[viewId].bozimo then self.allNodes[viewId].bozimo:setVisible(bVisible) else logE("bazhongRoomPlayerView:showBoZiMo ->viewId is not exit"..viewId) end end -- 清理所有博自摸 function bazhongRoomPlayerView:clearAllBoZiMo() for i=1,4 do if self.allNodes[i] and self.allNodes[i].bozimo then self.allNodes[i].bozimo:setVisible(false) end end end --显示定缺 function bazhongRoomPlayerView:showQue(tp,viewId,bVisible) if self.allNodes[viewId] and self.allNodes[viewId].que then self.allNodes[viewId].que:setVisible(bVisible) if tp == 0 then self.allNodes[viewId].que:loadTexture("mj_bazhong/res/zy_fangjian/xzddadd/xzdd_btn_wan.png", 0) elseif tp == 1 then self.allNodes[viewId].que:loadTexture("mj_bazhong/res/zy_fangjian/xzddadd/xzdd_btn_tong.png", 0) elseif tp == 2 then self.allNodes[viewId].que:loadTexture("mj_bazhong/res/zy_fangjian/xzddadd/xzdd_btn_tiao.png", 0) end else logE("bazhongRoomPlayerView:showQue ->viewId is not exit"..viewId) end end -- 清理所有定缺 function bazhongRoomPlayerView:clearAllQue() for i=1,4 do if self.allNodes[i] and self.allNodes[i].que then self.allNodes[i].que:setVisible(false) end end end --[[-- 更新玩家基本信息 : 昵称、头像 -- index :是玩家展示出来的座位号 function bazhongRoomPlayerView:updatePlayerInfo(index) logE("bazhongRoomPlayerView: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 memberInfo then 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/10)) -- 玩家头像 local nodeHead = nodes.head; --先设置默认头像 local width = nodeHead:getContentSize().width setPlayerHeadImage(nUserId, userInfo.headimgurl, nodeHead) else nodes.player:setVisible(false) end end--]] --显示胡顺序 function bazhongRoomPlayerView:showHuOrder(viewId,huType,order) if self.allNodes[viewId] and self.allNodes[viewId].huorder then self.allNodes[viewId].huorder:setVisible(true) if huType == MJDefine.MJGameHuType.HU_ZIMO then local textScr = string.format("mj_bazhong/res/zy_fangjian/xzddadd/xzdd_room_spr_zimo_%d.png",order) self.allNodes[viewId].huorder:loadTexture(textScr, 0) else local textScr = string.format("mj_bazhong/res/zy_fangjian/xzddadd/xzdd_room_spr_fangpao_%d.png",order) self.allNodes[viewId].huorder:loadTexture(textScr, 0) end else logE("bazhongRoomPlayerView:showQue ->viewId is not exit"..viewId) end end -- 清理所有胡顺序 function bazhongRoomPlayerView:clearAllHuOrder() for i=1,4 do if self.allNodes[i] and self.allNodes[i].huorder then self.allNodes[i].huorder:setVisible(false) end end end return bazhongRoomPlayerView