選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

361 行
11 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJRoomPlayerView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomPlayerView")
  3. local dazhouRoomPlayerView = class("dazhouRoomPlayerView", MJRoomPlayerView)
  4. function dazhouRoomPlayerView:ctor()
  5. dazhouRoomPlayerView.super.ctor(self);
  6. end
  7. function dazhouRoomPlayerView:loadUI()
  8. local ui = loadUI("mj_dazhou/res/ui_fangjian/mj_xzdd_playerView.ui");
  9. self.ui = ui;
  10. self:addChild(ui);
  11. end
  12. function dazhouRoomPlayerView:onEnter()
  13. self:loadUI()
  14. self:init()
  15. self:resetTuoGuanShow()
  16. end
  17. -- 托管显示
  18. function dazhouRoomPlayerView:resetTuoGuanShow()
  19. for i=1,4 do
  20. self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false)
  21. end
  22. end
  23. function dazhouRoomPlayerView:showTuoGuanByViewId(viewId,bVisible)
  24. self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible)
  25. end
  26. function dazhouRoomPlayerView:init()
  27. local names =
  28. {
  29. player = "Layout_player_%d", -- 头像绿圈根节点
  30. head = "ImageView_head_%d", -- 头像
  31. -- headBoarder = "ImageView_head_border_%d", --头像边
  32. name = "Text_Name_%d", -- 名字
  33. score = "Text_Score_%d", -- 总分数
  34. banker = "ImageView_banker_%d", -- 庄家
  35. readyState = "ImageView_ready_%d", -- 准备
  36. headInfo = "Layout_PlayerInfo_%d", --个人信息点击触发框
  37. offLine = "ImageView_offLine_%d", --离线标志
  38. --其他节点
  39. arrow = "ImageView_arrow_%d", -- 指示器
  40. tip = "ImageView_tip_%d", --提示操作图
  41. huxi = "Text_huxi_%d", --胡息
  42. qihu = "ImageView_qihu_%d", --弃胡
  43. bao = "ImageView_bao_%d", --爆
  44. --piao = "ImageView_piao_%d", --飘
  45. --bozimo = "ImageView_bozimo_%d", --博自摸
  46. que = "ImageView_que_%d", --弃胡
  47. huorder = "ImageView_huOrder_%d", --胡顺序
  48. }
  49. self.allNodes = {}
  50. self.headSize = {}
  51. for i = 1,4 do--LHQ_GAME_CONST.LHQ_GAME_CONST_PLAYER do
  52. local nodes = {}
  53. --玩家根节点
  54. local namePlayer = string.format(names.player,i)
  55. local nodePlayer = self.ui.Items[namePlayer]
  56. -- nodePlayer:setVisible(false)
  57. nodes.player = nodePlayer
  58. --头像
  59. local nameHead = string.format(names.head,i)
  60. local nodeHead = self.ui.Items[nameHead]
  61. nodes.head = nodeHead
  62. nodeHead:setTouchEnabled(true)
  63. nodeHead:registerClick(function()
  64. self:onClickHead(i)
  65. end)
  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. local nameQue = string.format(names.que,i)
  115. local nodeQue = self.ui.Items[nameQue]
  116. nodeQue:setVisible(false)
  117. nodes.que = nodeQue
  118. --爆
  119. local nameBao = string.format(names.bao,i)
  120. local nodeBao = self.ui.Items[nameBao]
  121. nodeBao:setVisible(false)
  122. nodes.bao = nodeBao
  123. --[[--飘
  124. local namePiao = string.format(names.piao,i)
  125. local nodePiao = self.ui.Items[namePiao]
  126. nodePiao:setVisible(false)
  127. nodes.piao = nodePiao
  128. --博自摸
  129. local nameBoZiMo = string.format(names.bozimo,i)
  130. local nodeBoZiMo = self.ui.Items[nameBoZiMo]
  131. nodeBoZiMo:setVisible(false)
  132. nodes.bozimo = nodeBoZiMo--]]
  133. --胡顺序
  134. local nameHuorder = string.format(names.huorder,i)
  135. local nodeHuorder = self.ui.Items[nameHuorder]
  136. nodeHuorder:setVisible(false)
  137. nodes.huorder = nodeHuorder
  138. self.allNodes[i] = nodes
  139. end
  140. self:initChatComponent()
  141. self.PropAniManager = import("luaScript.Tools.PropAniPlayer"):new(self.ui)
  142. --发送道具
  143. self:bindEvent(app.room,"showProp" , handler(self , self.showProp));
  144. self:bindEvent(app , MJDefine.MJEvent.ChangeChatEnable , handler(self , self.onChangeChatEnable))
  145. end
  146. function dazhouRoomPlayerView:initChatComponent()
  147. dazhouRoomPlayerView.super.initChatComponent(self);
  148. local voiceEnable = tonumber(loadUserInfo("PingBiYuYinKG_" .. (MJDefine.GameID or app.gameId))) or 1
  149. local propEnable = tonumber(loadUserInfo("HuDongBiaoQingKG_" .. (MJDefine.GameID or app.gameId))) or 1
  150. self.chatComponentView:setVoiceEnabled(voiceEnable==1)
  151. self.chatComponentView:setPropEnabled(propEnable==1)
  152. end
  153. function dazhouRoomPlayerView:onChangeChatEnable()
  154. if not self.chatComponentView or tolua.isnull(self.chatComponentView) then
  155. return
  156. end
  157. local voiceEnable = tonumber(loadUserInfo("PingBiYuYinKG_" .. (MJDefine.GameID or app.gameId))) or 1
  158. local propEnable = tonumber(loadUserInfo("HuDongBiaoQingKG_" .. (MJDefine.GameID or app.gameId))) or 1
  159. self.chatComponentView:setVoiceEnabled(voiceEnable==1)
  160. self.chatComponentView:setPropEnabled(propEnable==1)
  161. end
  162. function dazhouRoomPlayerView:playBaoAnim(view)
  163. if self.allNodes[view] and self.allNodes[view].bao then
  164. self.allNodes[view].bao:setVisible(true)
  165. --自贡不播爆动画了
  166. --[[-- 加载第一张图片
  167. local nodeImage = cc.ImageView:createNode()
  168. nodeImage:loadTexture(string.format("luzhou_bao_%d",1))
  169. self.allNodes[view].bao:addChild(nodeImage)
  170. local baoSize = self.allNodes[view].bao:getContentSize()
  171. nodeImage:setPosition(cc.p(baoSize.width/2-1,baoSize.height/2-2))
  172. -- 循环修改图片
  173. local everyFrame = 0.1
  174. local indexFace = 0
  175. local indexMax = 7
  176. local action1 = cc.Sequence:create(cc.DelayTime:create(everyFrame),cc.CallFunc:create(function ()
  177. indexFace = indexFace + 1
  178. if 0 < indexFace and indexFace <= indexMax then
  179. else
  180. indexFace = 1
  181. end
  182. local name = string.format("luzhou_bao_%d.png",indexFace)
  183. if not tolua.isnull(nodeImage) then
  184. nodeImage:loadTexture(name, cc.TextureResType.plistType)
  185. end
  186. end))
  187. local action2 = cc.Repeat:create(action1, indexMax)
  188. nodeImage:stopAllActions()
  189. nodeImage:runAction(cc.RepeatForever:create(action2));
  190. nodeImage:setVisible(true)--]]
  191. end
  192. end
  193. function dazhouRoomPlayerView:clearBao()
  194. for i=1,4 do
  195. if self.allNodes[i] and self.allNodes[i].bao then
  196. self.allNodes[i].bao:setVisible(false)
  197. self.allNodes[i].bao:removeAllChildren()
  198. end
  199. end
  200. end
  201. -- 显示飘标志
  202. function dazhouRoomPlayerView:showPiao(viewId,bVisible)
  203. if self.allNodes[viewId] and self.allNodes[viewId].piao then
  204. self.allNodes[viewId].piao:setVisible(bVisible)
  205. else
  206. logE("dazhouRoomPlayerView:showPiao ->viewId is not exit"..viewId)
  207. end
  208. end
  209. -- 清理所有飘标志
  210. function dazhouRoomPlayerView:clearAllPiao()
  211. for i=1,4 do
  212. if self.allNodes[i] and self.allNodes[i].piao then
  213. self.allNodes[i].piao:setVisible(false)
  214. end
  215. end
  216. end
  217. -- 显示博自摸
  218. function dazhouRoomPlayerView:showBoZiMo(viewId,bVisible)
  219. if self.allNodes[viewId] and self.allNodes[viewId].bozimo then
  220. self.allNodes[viewId].bozimo:setVisible(bVisible)
  221. else
  222. logE("dazhouRoomPlayerView:showBoZiMo ->viewId is not exit"..viewId)
  223. end
  224. end
  225. -- 清理所有博自摸
  226. function dazhouRoomPlayerView:clearAllBoZiMo()
  227. for i=1,4 do
  228. if self.allNodes[i] and self.allNodes[i].bozimo then
  229. self.allNodes[i].bozimo:setVisible(false)
  230. end
  231. end
  232. end
  233. --显示定缺
  234. function dazhouRoomPlayerView:showQue(tp,viewId,bVisible)
  235. if self.allNodes[viewId] and self.allNodes[viewId].que then
  236. self.allNodes[viewId].que:setVisible(bVisible)
  237. if tp == 0 then
  238. self.allNodes[viewId].que:loadTexture("mj_dazhou/res/zy_fangjian/xzddadd/xzdd_btn_wan.png", 0)
  239. elseif tp == 1 then
  240. self.allNodes[viewId].que:loadTexture("mj_dazhou/res/zy_fangjian/xzddadd/xzdd_btn_tong.png", 0)
  241. elseif tp == 2 then
  242. self.allNodes[viewId].que:loadTexture("mj_dazhou/res/zy_fangjian/xzddadd/xzdd_btn_tiao.png", 0)
  243. end
  244. else
  245. logE("dazhouRoomPlayerView:showQue ->viewId is not exit"..viewId)
  246. end
  247. end
  248. -- 清理所有定缺
  249. function dazhouRoomPlayerView:clearAllQue()
  250. for i=1,4 do
  251. if self.allNodes[i] and self.allNodes[i].que then
  252. self.allNodes[i].que:setVisible(false)
  253. end
  254. end
  255. end
  256. --[[-- 更新玩家基本信息 : 昵称、头像
  257. -- index :是玩家展示出来的座位号
  258. function dazhouRoomPlayerView:updatePlayerInfo(index)
  259. logE("dazhouRoomPlayerView:updatePlayerInfo() index = ", index)
  260. local nodes = self.allNodes[index]
  261. local nUserId = app.room.seatShowList[index]
  262. local roomInfo = app.room.roomInfo
  263. local memberInfo = app.room.roomInfo.memberList[nUserId]
  264. if memberInfo then
  265. nodes.player:setVisible(true)
  266. local userInfo = json.decode(memberInfo.userInfo)
  267. if not userInfo then
  268. return
  269. end
  270. -- 玩家名字
  271. local nickname = userInfo.nickname
  272. nickname = getSubStringNickname(nickname)
  273. nodes.name:setText(tostring(nickname))
  274. nodes.score:setText(tostring(memberInfo.nTotalMoney/10))
  275. -- 玩家头像
  276. local nodeHead = nodes.head;
  277. --先设置默认头像
  278. local width = nodeHead:getContentSize().width
  279. setPlayerHeadImage(nUserId, userInfo.headimgurl, nodeHead)
  280. else
  281. nodes.player:setVisible(false)
  282. end
  283. end--]]
  284. --显示胡顺序
  285. function dazhouRoomPlayerView:showHuOrder(viewId,huType,order)
  286. if self.allNodes[viewId] and self.allNodes[viewId].huorder then
  287. self.allNodes[viewId].huorder:setVisible(true)
  288. if huType == MJDefine.MJGameHuType.HU_ZIMO then
  289. local textScr = string.format("mj_dazhou/res/zy_fangjian/xzddadd/xzdd_room_spr_zimo_%d.png",order)
  290. self.allNodes[viewId].huorder:loadTexture(textScr, 0)
  291. else
  292. local textScr = string.format("mj_dazhou/res/zy_fangjian/xzddadd/xzdd_room_spr_fangpao_%d.png",order)
  293. self.allNodes[viewId].huorder:loadTexture(textScr, 0)
  294. end
  295. else
  296. logE("dazhouRoomPlayerView:showQue ->viewId is not exit"..viewId)
  297. end
  298. end
  299. -- 清理所有胡顺序
  300. function dazhouRoomPlayerView:clearAllHuOrder()
  301. for i=1,4 do
  302. if self.allNodes[i] and self.allNodes[i].huorder then
  303. self.allNodes[i].huorder:setVisible(false)
  304. end
  305. end
  306. end
  307. return dazhouRoomPlayerView