You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

259 line
7.5 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJRoomPlayerView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomPlayerView")
  3. local luzhouguiRoomPlayerView = class("luzhouguiRoomPlayerView", MJRoomPlayerView)
  4. function luzhouguiRoomPlayerView:ctor()
  5. luzhouguiRoomPlayerView.super.ctor(self);
  6. end
  7. function luzhouguiRoomPlayerView:loadUI()
  8. local ui = loadUI("mj_luzhougui/res/ui_fangjian/mj_luzhou_playerView.ui");
  9. self.ui = ui;
  10. self:addChild(ui);
  11. end
  12. function luzhouguiRoomPlayerView:onEnter()
  13. cc.SpriteFrameCache:getInstance():addSpriteFramesWithFile("mj_luzhougui/res/zy_fangjian/mj_luzhou_baoani.plist")
  14. self:loadUI()
  15. self:init()
  16. self:resetTuoGuanShow()
  17. end
  18. -- 托管显示
  19. function luzhouguiRoomPlayerView:resetTuoGuanShow()
  20. for i=1,4 do
  21. self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false)
  22. end
  23. end
  24. function luzhouguiRoomPlayerView:showTuoGuanByViewId(viewId,bVisible)
  25. self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible)
  26. end
  27. function luzhouguiRoomPlayerView:init()
  28. local names =
  29. {
  30. player = "Layout_player_%d", -- 头像绿圈根节点
  31. head = "ImageView_head_%d", -- 头像
  32. -- headBoarder = "ImageView_head_border_%d", --头像边
  33. name = "Text_Name_%d", -- 名字
  34. score = "Text_Score_%d", -- 总分数
  35. banker = "ImageView_banker_%d", -- 庄家
  36. readyState = "ImageView_ready_%d", -- 准备
  37. headInfo = "Layout_PlayerInfo_%d", --个人信息点击触发框
  38. offLine = "ImageView_offLine_%d", --离线标志
  39. --其他节点
  40. arrow = "ImageView_arrow_%d", -- 指示器
  41. tip = "ImageView_tip_%d", --提示操作图
  42. huxi = "Text_huxi_%d", --胡息
  43. qihu = "ImageView_qihu_%d", --弃胡
  44. bao = "ImageView_bao_%d", --爆
  45. }
  46. self.allNodes = {}
  47. self.headSize = {}
  48. for i = 1,4 do--LHQ_GAME_CONST.LHQ_GAME_CONST_PLAYER do
  49. local nodes = {}
  50. --玩家根节点
  51. local namePlayer = string.format(names.player,i)
  52. local nodePlayer = self.ui.Items[namePlayer]
  53. -- nodePlayer:setVisible(false)
  54. nodes.player = nodePlayer
  55. --头像
  56. local nameHead = string.format(names.head,i)
  57. local nodeHead = self.ui.Items[nameHead]
  58. nodes.head = nodeHead
  59. nodeHead:setTouchEnabled(true)
  60. nodeHead:registerClick(function()
  61. self:onClickHead(i)
  62. end)
  63. -- local headBoarder = string.format(names.headBoarder,i)
  64. -- local nodeheadBoarder = self.ui.Items[headBoarder]
  65. -- nodes.headBoarder = nodeheadBoarder
  66. -- 需要记录头像的原始尺寸
  67. if not self.headSize.width then
  68. self.headSize.width = nodeHead:getContentSize().width
  69. self.headSize.height = nodeHead:getContentSize().height
  70. end
  71. --昵称
  72. local nickName = string.format(names.name,i)
  73. local nodeName = self.ui.Items[nickName]
  74. nodes.name = nodeName
  75. nodeName:setText("")
  76. --总分
  77. local nickScore = string.format(names.score,i)
  78. local nodeScore = self.ui.Items[nickScore]
  79. nodes.score = nodeScore
  80. --庄家
  81. local nameBanker = string.format(names.banker,i)
  82. local nodeBanker = self.ui.Items[nameBanker]
  83. nodeBanker:setVisible(false)
  84. nodes.banker = nodeBanker
  85. --准备
  86. local nameReadyState = string.format(names.readyState,i)
  87. local nodeReadyState = self.ui.Items[nameReadyState]
  88. nodes.readyState = nodeReadyState
  89. --头像信息
  90. local headInfo = string.format(names.headInfo,i)
  91. local nodeheadInfo = self.ui.Items[headInfo]
  92. nodes.headInfo = nodeheadInfo
  93. --离线信息
  94. local offLine = string.format(names.offLine,i)
  95. local nodeoffLine = self.ui.Items[offLine]
  96. nodes.offLine = nodeoffLine
  97. --指示器
  98. -- local nameArrow = string.format(names.arrow,i)
  99. -- local nodeArrow = self.ui.Items[nameArrow]
  100. -- nodes.arrow = nodeArrow
  101. --tip
  102. local nameTip = string.format(names.tip,i)
  103. local nodeTip = self.ui.Items[nameTip]
  104. nodes.tip = nodeTip
  105. --huxi
  106. local nameHuxi = string.format(names.huxi,i)
  107. local nodeHuxi = self.ui.Items[nameHuxi]
  108. nodes.huxi = nodeHuxi
  109. --弃胡
  110. local nameQiHu = string.format(names.qihu,i)
  111. local nodeQiHu = self.ui.Items[nameQiHu]
  112. nodeQiHu:setVisible(false)
  113. nodes.qihu = nodeQiHu
  114. --爆
  115. local nameBao = string.format(names.bao,i)
  116. local nodeBao = self.ui.Items[nameBao]
  117. nodeBao:setVisible(false)
  118. nodes.bao = nodeBao
  119. self.allNodes[i] = nodes
  120. end
  121. self:initChatComponent()
  122. self.PropAniManager = import("luaScript.Tools.PropAniPlayer"):new(self.ui)
  123. --发送道具
  124. self:bindEvent(app.room,"showProp" , handler(self , self.showProp));
  125. self:bindEvent(app , MJDefine.MJEvent.ChangeChatEnable , handler(self , self.onChangeChatEnable))
  126. end
  127. -- 更新玩家基本信息 : 昵称、头像
  128. -- index :是玩家展示出来的座位号
  129. function luzhouguiRoomPlayerView:updatePlayerInfo(index)
  130. logE("luzhouguiRoomPlayerView:updatePlayerInfo() index = ", index)
  131. local nodes = self.allNodes[index]
  132. local nUserId = app.room.seatShowList[index]
  133. local roomInfo = app.room.roomInfo
  134. local memberInfo = app.room.roomInfo.memberList[nUserId]
  135. if roomInfo.isEapCreate == 1 then
  136. local playerInfo = G_EapSdkMgr:getTableUserBaseInfo(nUserId)
  137. if playerInfo and memberInfo then
  138. logD("获取电竞Sdk的用户信息并赋值", table.tostring(playerInfo))
  139. local nPID = playerInfo.nPID --平台账号 id
  140. local strNickname = playerInfo.strNickname --平台昵称
  141. local strAvatar = playerInfo.strAvatar --头像url
  142. local userInfo = memberInfo.userInfo
  143. userInfo.headimgurl = strAvatar
  144. userInfo.nickname = strNickname
  145. end
  146. end
  147. if memberInfo then
  148. --[[if memberInfo.nPlayerFlag == LHQ_GAME_CONST.LHQ_GAME_CONST_ONLOOKER then
  149. return
  150. end--]]
  151. nodes.player:setVisible(true)
  152. local userInfo = json.decode(memberInfo.userInfo)
  153. if not userInfo then
  154. return
  155. end
  156. -- 玩家名字
  157. local nickname = userInfo.nickname
  158. nickname = getSubStringNickname(nickname)
  159. nodes.name:setText(tostring(nickname))
  160. nodes.score:setText(tostring(memberInfo.nTotalMoney))
  161. -- 玩家头像
  162. local nodeHead = nodes.head;
  163. --先设置默认头像
  164. local width = nodeHead:getContentSize().width
  165. setPlayerHeadImage(nUserId, userInfo.headimgurl, nodeHead)
  166. else
  167. nodes.player:setVisible(false)
  168. nodes.offLine:setVisible(bVisible)
  169. end
  170. end
  171. function luzhouguiRoomPlayerView:playBaoAnim(view)
  172. if self.allNodes[view] and self.allNodes[view].bao then
  173. self.allNodes[view].bao:setVisible(true)
  174. -- 加载第一张图片
  175. local nodeImage = cc.ImageView:createNode()
  176. nodeImage:loadTexture(string.format("luzhou_bao_%d",1))
  177. self.allNodes[view].bao:addChild(nodeImage)
  178. local baoSize = self.allNodes[view].bao:getContentSize()
  179. nodeImage:setPosition(cc.p(baoSize.width/2-1,baoSize.height/2-2))
  180. -- 循环修改图片
  181. local everyFrame = 0.1
  182. local indexFace = 0
  183. local indexMax = 7
  184. local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  185. indexFace = indexFace + 1
  186. if 0 < indexFace and indexFace <= indexMax then
  187. else
  188. indexFace = 1
  189. end
  190. local name = string.format("luzhou_bao_%d.png",indexFace)
  191. if not tolua.isnull(nodeImage) then
  192. nodeImage:loadTexture(name, cc.TextureResType.plistType)
  193. end
  194. end))
  195. local action2 = cc.Repeat:create(action1, indexMax)
  196. nodeImage:stopAllActions()
  197. nodeImage:runAction(cc.RepeatForever:create(action2));
  198. nodeImage:setVisible(true)
  199. end
  200. end
  201. function luzhouguiRoomPlayerView:clearBao()
  202. for i=1,4 do
  203. if self.allNodes[i] and self.allNodes[i].bao then
  204. self.allNodes[i].bao:setVisible(false)
  205. self.allNodes[i].bao:removeAllChildren()
  206. end
  207. end
  208. end
  209. return luzhouguiRoomPlayerView