Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

332 righe
9.7 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJRoomPlayerView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomPlayerView")
  3. local xcmajRoomPlayerView = class("xcmajRoomPlayerView", MJRoomPlayerView)
  4. function xcmajRoomPlayerView:ctor()
  5. xcmajRoomPlayerView.super.ctor(self);
  6. end
  7. function xcmajRoomPlayerView:loadUI()
  8. local ui = loadUI("mj_xcmaj/res/ui_fangjian/mj_xcmaj_playerView.ui");
  9. self.ui = ui;
  10. self:addChild(ui);
  11. end
  12. function xcmajRoomPlayerView:onEnter()
  13. self:loadUI()
  14. self:init()
  15. self:resetTuoGuanShow()
  16. end
  17. -- 托管显示
  18. function xcmajRoomPlayerView:resetTuoGuanShow()
  19. for i=1,4 do
  20. self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false)
  21. end
  22. end
  23. function xcmajRoomPlayerView:showTuoGuanByViewId(viewId,bVisible)
  24. if viewId and self.ui.Items["ImageView_tuoguan_"..viewId] then
  25. self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible)
  26. end
  27. end
  28. function xcmajRoomPlayerView:init()
  29. local names =
  30. {
  31. player = "Layout_player_%d", -- 头像绿圈根节点
  32. head = "ImageView_head_%d", -- 头像
  33. -- headBoarder = "ImageView_head_border_%d", --头像边
  34. name = "Text_Name_%d", -- 名字
  35. score = "Text_Score_%d", -- 总分数
  36. banker = "ImageView_banker_%d", -- 庄家
  37. readyState = "ImageView_ready_%d", -- 准备
  38. headInfo = "Layout_PlayerInfo_%d", --个人信息点击触发框
  39. offLine = "ImageView_offLine_%d", --离线标志
  40. --其他节点
  41. arrow = "ImageView_arrow_%d", -- 指示器
  42. tip = "ImageView_tip_%d", --提示操作图
  43. huxi = "Text_huxi_%d", --胡息
  44. qihu = "ImageView_qihu_%d", --弃胡
  45. --bao = "ImageView_bao_%d", --爆
  46. piao = "ImageView_piao_%d", --飘
  47. --bozimo = "ImageView_bozimo_%d", --博自摸
  48. que = "ImageView_que_%d", --弃胡
  49. }
  50. self.allNodes = {}
  51. self.headSize = {}
  52. for i = 1,4 do--LHQ_GAME_CONST.LHQ_GAME_CONST_PLAYER do
  53. local nodes = {}
  54. --玩家根节点
  55. local namePlayer = string.format(names.player,i)
  56. local nodePlayer = self.ui.Items[namePlayer]
  57. -- nodePlayer:setVisible(false)
  58. nodes.player = nodePlayer
  59. --头像
  60. local nameHead = string.format(names.head,i)
  61. local nodeHead = self.ui.Items[nameHead]
  62. nodes.head = nodeHead
  63. nodeHead:setTouchEnabled(true)
  64. nodeHead:registerClick(function()
  65. self:onClickHead(i)
  66. end)
  67. -- 需要记录头像的原始尺寸
  68. if not self.headSize.width then
  69. self.headSize.width = nodeHead:getContentSize().width
  70. self.headSize.height = nodeHead:getContentSize().height
  71. end
  72. --昵称
  73. local nickName = string.format(names.name,i)
  74. local nodeName = self.ui.Items[nickName]
  75. nodes.name = nodeName
  76. nodeName:setText("")
  77. --总分
  78. local nickScore = string.format(names.score,i)
  79. local nodeScore = self.ui.Items[nickScore]
  80. nodes.score = nodeScore
  81. --庄家
  82. local nameBanker = string.format(names.banker,i)
  83. local nodeBanker = self.ui.Items[nameBanker]
  84. nodeBanker:setVisible(false)
  85. nodes.banker = nodeBanker
  86. --准备
  87. local nameReadyState = string.format(names.readyState,i)
  88. local nodeReadyState = self.ui.Items[nameReadyState]
  89. nodes.readyState = nodeReadyState
  90. --头像信息
  91. local headInfo = string.format(names.headInfo,i)
  92. local nodeheadInfo = self.ui.Items[headInfo]
  93. nodes.headInfo = nodeheadInfo
  94. --离线信息
  95. local offLine = string.format(names.offLine,i)
  96. local nodeoffLine = self.ui.Items[offLine]
  97. nodes.offLine = nodeoffLine
  98. --指示器
  99. -- local nameArrow = string.format(names.arrow,i)
  100. -- local nodeArrow = self.ui.Items[nameArrow]
  101. -- nodes.arrow = nodeArrow
  102. --tip
  103. local nameTip = string.format(names.tip,i)
  104. local nodeTip = self.ui.Items[nameTip]
  105. nodes.tip = nodeTip
  106. --huxi
  107. local nameHuxi = string.format(names.huxi,i)
  108. local nodeHuxi = self.ui.Items[nameHuxi]
  109. nodes.huxi = nodeHuxi
  110. --弃胡
  111. local nameQiHu = string.format(names.qihu,i)
  112. local nodeQiHu = self.ui.Items[nameQiHu]
  113. nodeQiHu:setVisible(false)
  114. nodes.qihu = nodeQiHu
  115. local nameQue = string.format(names.que,i)
  116. local nodeQue = self.ui.Items[nameQue]
  117. nodeQue:setVisible(false)
  118. nodes.que = nodeQue
  119. --飘
  120. local namePiao = string.format(names.piao,i)
  121. local nodePiao = self.ui.Items[namePiao]
  122. nodePiao:setVisible(false)
  123. nodes.piao = nodePiao
  124. --[[--爆
  125. local nameBao = string.format(names.bao,i)
  126. local nodeBao = self.ui.Items[nameBao]
  127. nodeBao:setVisible(false)
  128. nodes.bao = nodeBao
  129. --博自摸
  130. local nameBoZiMo = string.format(names.bozimo,i)
  131. local nodeBoZiMo = self.ui.Items[nameBoZiMo]
  132. nodeBoZiMo:setVisible(false)
  133. nodes.bozimo = nodeBoZiMo--]]
  134. self.allNodes[i] = nodes
  135. end
  136. self:initChatComponent()
  137. self.PropAniManager = import("luaScript.Tools.PropAniPlayer"):new(self.ui)
  138. --发送道具
  139. self:bindEvent(app.room,"showProp" , handler(self , self.showProp));
  140. self:bindEvent(app , MJDefine.MJEvent.ChangeChatEnable , handler(self , self.onChangeChatEnable))
  141. end
  142. function xcmajRoomPlayerView:initChatComponent()
  143. xcmajRoomPlayerView.super.initChatComponent(self);
  144. local voiceEnable = tonumber(loadUserInfo("xcmajPingBiYuYinKG")) or 1
  145. local propEnable = tonumber(loadUserInfo("xcmajHuDongBiaoQingKG")) or 1
  146. self.chatComponentView:setVoiceEnabled(voiceEnable==1)
  147. self.chatComponentView:setPropEnabled(propEnable==1)
  148. end
  149. function xcmajRoomPlayerView:onChangeChatEnable()
  150. if not self.chatComponentView or tolua.isnull(self.chatComponentView) then
  151. return
  152. end
  153. local voiceEnable = tonumber(loadUserInfo("xcmajPingBiYuYinKG")) or 1
  154. local propEnable = tonumber(loadUserInfo("xcmajHuDongBiaoQingKG")) or 1
  155. self.chatComponentView:setVoiceEnabled(voiceEnable==1)
  156. self.chatComponentView:setPropEnabled(propEnable==1)
  157. end
  158. function xcmajRoomPlayerView:playBaoAnim(view)
  159. if self.allNodes[view] and self.allNodes[view].bao then
  160. self.allNodes[view].bao:setVisible(true)
  161. --自贡不播爆动画了
  162. --[[-- 加载第一张图片
  163. local nodeImage = cc.ImageView:createNode()
  164. nodeImage:loadTexture(string.format("luzhou_bao_%d",1))
  165. self.allNodes[view].bao:addChild(nodeImage)
  166. local baoSize = self.allNodes[view].bao:getContentSize()
  167. nodeImage:setPosition(cc.p(baoSize.width/2-1,baoSize.height/2-2))
  168. -- 循环修改图片
  169. local everyFrame = 0.1
  170. local indexFace = 0
  171. local indexMax = 7
  172. local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  173. indexFace = indexFace + 1
  174. if 0 < indexFace and indexFace <= indexMax then
  175. else
  176. indexFace = 1
  177. end
  178. local name = string.format("luzhou_bao_%d.png",indexFace)
  179. if not tolua.isnull(nodeImage) then
  180. nodeImage:loadTexture(name, cc.TextureResType.plistType)
  181. end
  182. end))
  183. local action2 = cc.Repeat:create(action1, indexMax)
  184. nodeImage:stopAllActions()
  185. nodeImage:runAction(cc.RepeatForever:create(action2));
  186. nodeImage:setVisible(true)--]]
  187. end
  188. end
  189. function xcmajRoomPlayerView:clearBao()
  190. for i=1,4 do
  191. if self.allNodes[i] and self.allNodes[i].bao then
  192. self.allNodes[i].bao:setVisible(false)
  193. self.allNodes[i].bao:removeAllChildren()
  194. end
  195. end
  196. end
  197. -- 显示飘标志
  198. function xcmajRoomPlayerView:showPiao(viewId,bVisible)
  199. if self.allNodes[viewId] and self.allNodes[viewId].piao then
  200. self.allNodes[viewId].piao:setVisible(bVisible)
  201. else
  202. logE("xcmajRoomPlayerView:showPiao ->viewId is not exit"..viewId)
  203. end
  204. end
  205. -- 清理所有飘标志
  206. function xcmajRoomPlayerView:clearAllPiao()
  207. for i=1,4 do
  208. if self.allNodes[i] and self.allNodes[i].piao then
  209. self.allNodes[i].piao:setVisible(false)
  210. end
  211. end
  212. end
  213. -- 显示博自摸
  214. function xcmajRoomPlayerView:showBoZiMo(viewId,bVisible)
  215. if self.allNodes[viewId] and self.allNodes[viewId].bozimo then
  216. self.allNodes[viewId].bozimo:setVisible(bVisible)
  217. else
  218. logE("xcmajRoomPlayerView:showBoZiMo ->viewId is not exit"..viewId)
  219. end
  220. end
  221. -- 清理所有博自摸
  222. function xcmajRoomPlayerView:clearAllBoZiMo()
  223. for i=1,4 do
  224. if self.allNodes[i] and self.allNodes[i].bozimo then
  225. self.allNodes[i].bozimo:setVisible(false)
  226. end
  227. end
  228. end
  229. --显示定缺
  230. function xcmajRoomPlayerView:showQue(tp,viewId,bVisible)
  231. if self.allNodes[viewId] and self.allNodes[viewId].que then
  232. self.allNodes[viewId].que:setVisible(bVisible)
  233. if tp == 0 then
  234. self.allNodes[viewId].que:loadTexture("mj_xcmaj/res/zy_fangjian/xcmjadd/xcmj_btn_wan.png", 0)
  235. elseif tp == 1 then
  236. self.allNodes[viewId].que:loadTexture("mj_xcmaj/res/zy_fangjian/xcmjadd/xcmj_btn_tong.png", 0)
  237. elseif tp == 2 then
  238. self.allNodes[viewId].que:loadTexture("mj_xcmaj/res/zy_fangjian/xcmjadd/xcmj_btn_tiao.png", 0)
  239. end
  240. else
  241. logE("xcmajRoomPlayerView:showQue ->viewId is not exit"..viewId)
  242. end
  243. end
  244. -- 清理所有定缺
  245. function xcmajRoomPlayerView:clearAllQue()
  246. for i=1,4 do
  247. if self.allNodes[i] and self.allNodes[i].que then
  248. self.allNodes[i].que:setVisible(false)
  249. end
  250. end
  251. end
  252. --[[-- 更新玩家基本信息 : 昵称、头像
  253. -- index :是玩家展示出来的座位号
  254. function xcmajRoomPlayerView:updatePlayerInfo(index)
  255. logE("xcmajRoomPlayerView:updatePlayerInfo() index = ", index)
  256. local nodes = self.allNodes[index]
  257. local nUserId = app.room.seatShowList[index]
  258. local roomInfo = app.room.roomInfo
  259. local memberInfo = app.room.roomInfo.memberList[nUserId]
  260. if memberInfo then
  261. nodes.player:setVisible(true)
  262. local userInfo = json.decode(memberInfo.userInfo)
  263. if not userInfo then
  264. return
  265. end
  266. -- 玩家名字
  267. local nickname = userInfo.nickname
  268. nickname = getSubStringNickname(nickname)
  269. nodes.name:setText(tostring(nickname))
  270. nodes.score:setText(tostring(memberInfo.nTotalMoney/10))
  271. -- 玩家头像
  272. local nodeHead = nodes.head;
  273. --先设置默认头像
  274. local width = nodeHead:getContentSize().width
  275. setPlayerHeadImage(nUserId, userInfo.headimgurl, nodeHead)
  276. else
  277. nodes.player:setVisible(false)
  278. end
  279. end--]]
  280. return xcmajRoomPlayerView