|
- 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
|