|
- -- 房间设置界面
- local MJOtherPlayerInfoView = MJFramework.MJImport("mj.luaScript.Views.Room.MJOtherPlayerInfoView")
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
- local MJRoomPlayerView = class("MJRoomPlayerView", cc.UIView)
-
- function MJRoomPlayerView:ctor()
- MJRoomPlayerView.super.ctor(self);
- end
-
- function MJRoomPlayerView:onEnter()
- MJRoomPlayerView.super.onEnter(self)
-
- self:loadUI()
-
- self:init()
- end
-
- function MJRoomPlayerView:loadUI()
- local ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_player_view.ui");
- self.ui = ui;
- self:addChild(ui);
- end
-
- function MJRoomPlayerView: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", --弃胡
-
- }
- 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
-
- 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 MJRoomPlayerView:initChatComponent()
- if self.chatComponentView and not tolua.isnull(self.chatComponentView) then
- return
- end
-
- local heads = {
- [1] = self.allNodes[1].head,
- [2] = self.allNodes[2].head,
- [3] = self.allNodes[3].head,
- [4] = self.allNodes[4].head,
- }
-
- self.chatComponentView = import("luaScript.Views.Room.RoomChatComponentView"):new(heads,MJDefine.MJChatTxt,MJDefine.MJFaceConfig)
- local voiceEnable = tonumber(loadUserInfo("voiceEnable")) or 1
- local propEnable = tonumber(loadUserInfo("propEnable")) or 1
- self.chatComponentView:setVoiceEnabled(voiceEnable==1)
- self.chatComponentView:setPropEnabled(propEnable==1)
- self:addChild(self.chatComponentView)
- end
-
- function MJRoomPlayerView: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 MJRoomPlayerView:setBankerVisible(viewId,ani)
- for i = 1,4 do
- self.allNodes[i].banker:setVisible(false)
- end
-
- if not self.allNodes[viewId] then
- logE("not viewId "..viewId)
- return
- end
-
- self.allNodes[viewId].banker:setVisible(true)
-
- if ani then
- self.allNodes[viewId].banker:setScale(3.0)
- local seq = cc.Sequence:create(cc.ScaleTo:create(0.25,0.8),cc.ScaleTo:create(0.2,1.2),cc.ScaleTo:create(0.1,1.0))
- self.allNodes[viewId].banker:runAction(seq)
- -- local seq2 = cc.Sequence:create(cc.CallFunc:create(function ()
- -- self.allNodes[viewId].headLight:setVisible(true)
- -- end),cc.DelayTime:create(1.0),cc.CallFunc:create(function ()
- -- self.allNodes[viewId].headLight:setVisible(false)
- -- self.allNodes[viewId].headLightFlag:setVisible(true)
- -- end))
- -- self.allNodes[viewId].headLight:runAction(seq2)
- end
- end
-
-
- function MJRoomPlayerView:setQiHuVisible(viewId)
- if self.allNodes[viewId] then
- self.allNodes[viewId].qihu:setVisible(true)
- else
- logE("MJRoomPlayerView:showPlayerQiHu ->viewId is not"..viewId)
- end
- end
-
-
- --隐藏玩家
- function MJRoomPlayerView:setPlayerVisible(bVisible)
- for i = 1,4 do
- self.allNodes[i].player:setVisible(bVisible)
- end
- end
-
- --隐藏离线
- function MJRoomPlayerView:setOffLineVisible(bVisible)
- for i = 1,4 do --LHQ_GAME_CONST.LHQ_GAME_CONST_PLAYER do
- self.allNodes[i].offLine:setVisible(false)
- end
- end
-
- --隐藏离线
- function MJRoomPlayerView:setPlayerOffLineVisible(bVisible,viewId)
- if not viewId or viewId > 4 or not self.allNodes[viewId] then
- return
- end
- self.allNodes[viewId].offLine:setVisible(bVisible)
- --头像变灰
- -- self.allNodes[viewId].head:setGreyEnabled(bVisible)
- -- self.allNodes[viewId].headBoarder:setGreyEnabled(bVisible)
-
- local Text_offtime = self.allNodes[viewId].offLine:getChildByName("Text_offline_time_"..viewId)
- if Text_offtime then
- local userId = app.room:getUserIdByViewId(viewId)
- local member = app.room.roomInfo.memberList[userId]
- local offtime = member and member.offlinetime or 0
-
- Text_offtime:setText(formatTimeToStr(offtime))
- Text_offtime:stopAllActions()
- Text_offtime:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.DelayTime:create(1),cc.CallFunc:create(function()
- offtime = offtime + 1
- Text_offtime:setText(formatTimeToStr(offtime))
- end))))
- end
- end
-
- --隐藏提示
- function MJRoomPlayerView:setOperatorTipVisible(bVisible)
- for i = 1,4 do
- self.allNodes[i].tip:setVisible(bVisible)
- end
- end
-
- function MJRoomPlayerView:setHeadTouchEnable(b)
- for i = 1,4 do
- self.allNodes[i].head:setTouchEnabled(b)
- end
- end
-
- --设置准备状态
- function MJRoomPlayerView:setReadyStatus(viewId,bVisible)
- if self.allNodes[viewId] then
- self.allNodes[viewId].readyState:setVisible(bVisible)
- else
- logE("MJRoomPlayerView:setReadyStatus ->viewId is not"..viewId)
- end
- end
-
-
- -- 更新玩家基本信息 : 昵称、头像
- -- index :是玩家展示出来的座位号
- function MJRoomPlayerView:updatePlayerInfo(index)
-
- logE("MJRoomView: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
-
- --[[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 MJRoomPlayerView:onClickHead(index)
- playBtnEffect()
- local nUserId = app.room.seatShowList[index]
- local memberInfo = app.room.roomInfo.memberList[nUserId]
- if memberInfo then
- local view = import("luaScript.Views.Room.RoomPlayerInfoViewNew"):new(nUserId, memberInfo.userInfo)
- view:setAnchorPoint(cc.p(0.5, 0.5))
- app:showWaitDialog(view, 0, true)
- end
- end
-
- function MJRoomPlayerView:getHead(index)
- local nodes = self.allNodes[index]
- return nodes.head
- end
-
- function MJRoomPlayerView:removePlayerInfoView()
- if self.playerInfoView then
- self.playerInfoView:removeFromParent()
- self.playerInfoView=nil
- end
- end
-
-
-
- function MJRoomPlayerView:showProp(data)
-
- local response = data.response
- logE("LHQRoomView:showProp response = "..table.tostring(response))
- --ui表现开始
- local uidStarId = response.uidStarId
- local uidEndId = response.uidEndId
- local propId = response.propId
- local isQunFa = response.isQunFa
-
- local beginViewId = app.room:getViewIdByUserId(uidStarId)
- local endViewId = app.room:getViewIdByUserId(uidEndId)
-
-
- if beginViewId==MJDefine.MyViewId then
- self:removePlayerInfoView()
- end
-
- if not self.allNodes[beginViewId] or not self.allNodes[endViewId]
- or not self.allNodes[endViewId].head or not self.allNodes[beginViewId].head then
- logE("场景还没初始化完成就收到道具消息果断return!")
- return
- end
-
- --播放动画
- if isQunFa == 1 then
- local onLineList = app.room.roomInfo.memberList
- for nUserId,v in pairs(onLineList) do
- local endViewId = app.room:getViewIdByUserId(nUserId)
- if endViewId ~= beginViewId then
- self.PropAniManager:playAnimation(self.allNodes[beginViewId].head,self.allNodes[endViewId].head,propId)
- end
- end
- else
- self.PropAniManager:playAnimation(self.allNodes[beginViewId].head,self.allNodes[endViewId].head,propId)
- end
- end
-
- return MJRoomPlayerView;
|