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.

254 lines
7.8 KiB

  1. local ZPDef = ZPFramework.ZPImport("zp_base.luaScript.ZPDef")
  2. local ZPMessage = ZPFramework.ZPImport("zp_base.luaScript.Protocol.ZPMessage")
  3. local ZPFuc = ZPFramework.ZPImport("zp_base.luaScript.ZPFunctions")
  4. local ZPRoomPlayerView = ZPFramework.ZPFrameworkClassImprot("zp_base.luaScript.Views.Room.ZPRoomPlayerView")
  5. local hejiangRoomPlayerView = class("hejiangRoomPlayerView", ZPRoomPlayerView)
  6. function hejiangRoomPlayerView:ctor( ... )
  7. hejiangRoomPlayerView.super.ctor(self)
  8. end
  9. function hejiangRoomPlayerView:loadUI()
  10. local ui = loadUI("zp_hejiang/res/ui/ui_fangjian/hejiang_ui_PlayerView.ui");
  11. self.ui = ui;
  12. self:addChild(ui);
  13. end
  14. function hejiangRoomPlayerView:onEnter()
  15. hejiangRoomPlayerView.super.onEnter(self)
  16. end
  17. function hejiangRoomPlayerView:initPlayerNodes()
  18. -- 玩家节点名称模板
  19. local names =
  20. {
  21. player = "Layout_player_%d", -- 头像绿圈根节点
  22. head = "ImageView_head_%d", -- 头像
  23. headBoarder = "ImageView_head_border_%d", --头像边
  24. name = "Text_Name_%d", -- 名字
  25. score = "TextBMFont_Score_%d", -- 总分数
  26. banker = "ImageView_banker_%d", -- 庄家
  27. owner = "ImageView_owner_%d", --房主
  28. readyState = "ImageView_ready_%d", -- 准备
  29. headInfo = "Layout_headInfo_%d", --个人信息点击触发框
  30. offLine = "ImageView_offLine_%d", --离线标志
  31. --其他节点
  32. tip = "ImageView_tip_%d", --提示操作图
  33. huxi = "TextBMFont_huxi_%d", --胡息
  34. clock = "ImageView_clock_%d", --闹钟
  35. txtClocl = "TextBMFont_clock_%d", --闹钟时间
  36. bao = "ImageView_bao_%d", --爆
  37. offLineTime = "Text_offLineTime_%d", --离线时间
  38. offLineTimeBg = "ImageView_txkYY_%d", --离线时间背景
  39. leftCardBg = "ImageView_LeftCardBg_%d", --剩余手牌背景
  40. leftCardNum = "TextBMFont_LeftCardNum_%d", --剩余手牌数量
  41. arrow = "ImageView_arrow_%d", --箭头
  42. tuoguan = "ImageView_tuoguan_%d", --托管标志
  43. }
  44. self.allNodes = {}
  45. self.headSize = {}
  46. for i = 1,ZPDef.GameMaxPlayer do
  47. local nodes = {}
  48. --玩家根节点
  49. local namePlayer = string.format(names.player,i)
  50. local nodePlayer = self.ui.Items[namePlayer]
  51. nodes.player = nodePlayer
  52. --头像
  53. local nameHead = string.format(names.head,i)
  54. local nodeHead = self.ui.Items[nameHead]
  55. nodes.head = nodeHead
  56. nodeHead:setTouchEnabled(true)
  57. nodeHead:registerClick(function()
  58. self:onClickHead(i)
  59. end)
  60. local headBoarder = string.format(names.headBoarder,i)
  61. local nodeheadBoarder = self.ui.Items[headBoarder]
  62. nodes.headBoarder = nodeheadBoarder
  63. -- 需要记录头像的原始尺寸
  64. if not self.headSize.width then
  65. self.headSize.width = nodeHead:getContentSize().width
  66. self.headSize.height = nodeHead:getContentSize().height
  67. end
  68. --昵称
  69. local nickName = string.format(names.name,i)
  70. local nodeName = self.ui.Items[nickName]
  71. nodes.name = nodeName
  72. nodeName:setText("")
  73. --总分
  74. local nickScore = string.format(names.score,i)
  75. local nodeScore = self.ui.Items[nickScore]
  76. nodes.score = nodeScore
  77. --庄家
  78. local nameBanker = string.format(names.banker,i)
  79. local nodeBanker = self.ui.Items[nameBanker]
  80. nodes.banker = nodeBanker
  81. nodes.banker.pos = nodeBanker:getPosition()
  82. --房主
  83. local nameOwner = string.format(names.owner,i)
  84. local nodeOwner = self.ui.Items[nameOwner]
  85. nodes.owner = nodeOwner
  86. nodes.owner.pos = nodeOwner:getPosition()
  87. --准备
  88. local nameReadyState = string.format(names.readyState,i)
  89. local nodeReadyState = self.ui.Items[nameReadyState]
  90. nodes.readyState = nodeReadyState
  91. --头像信息
  92. local headInfo = string.format(names.headInfo,i)
  93. local nodeheadInfo = self.ui.Items[headInfo]
  94. nodes.headInfo = nodeheadInfo
  95. --离线信息
  96. local offLine = string.format(names.offLine,i)
  97. local nodeoffLine = self.ui.Items[offLine]
  98. nodes.offLine = nodeoffLine
  99. --tip
  100. local nameTip = string.format(names.tip,i)
  101. local nodeTip = self.ui.Items[nameTip]
  102. nodes.tip = nodeTip
  103. --胡息
  104. local nameHuxi = string.format(names.huxi,i)
  105. local nodeHuxi = self.ui.Items[nameHuxi]
  106. nodes.huxi = nodeHuxi
  107. --爆
  108. local nameBao = string.format(names.bao,i)
  109. local nodeBao = self.ui.Items[nameBao]
  110. nodes.bao = nodeBao
  111. --闹钟
  112. local nameClock = string.format(names.clock,i)
  113. local nodeClock = self.ui.Items[nameClock]
  114. nodes.clock = nodeClock
  115. --闹钟时间
  116. local nametxtClock = string.format(names.txtClocl,i)
  117. local nodetxtClock = self.ui.Items[nametxtClock]
  118. nodes.txtclock = nodetxtClock
  119. --离线时间
  120. local nameoffLineTime = string.format(names.offLineTime,i)
  121. local nodeoffLineTime = self.ui.Items[nameoffLineTime]
  122. nodes.offLineTime = nodeoffLineTime
  123. --离线时间背景
  124. local nameoffLineTimeBg = string.format(names.offLineTimeBg,i)
  125. local nodeoffLineTimeBg = self.ui.Items[nameoffLineTimeBg]
  126. nodes.offLineTimeBg = nodeoffLineTimeBg
  127. nodes.offLineTimeBg:setVisible(false)
  128. --剩余手牌背景
  129. local nameleftCardBg = string.format(names.leftCardBg,i)
  130. local nodeleftCardBg = self.ui.Items[nameleftCardBg]
  131. nodes.leftCardBg = nodeleftCardBg
  132. --剩余手牌数量
  133. local nameleftCardNum = string.format(names.leftCardNum,i)
  134. local nodeleftCardNum = self.ui.Items[nameleftCardNum]
  135. nodes.leftCardNum = nodeleftCardNum
  136. local namearrow = string.format(names.arrow,i)
  137. local nodearrow = self.ui.Items[namearrow]
  138. nodes.arrow = nodearrow
  139. --托管状态
  140. local nametuoguan = string.format(names.tuoguan,i)
  141. local nodetuoguan = self.ui.Items[nametuoguan]
  142. nodes.tuoguan = nodetuoguan
  143. self.allNodes[i] = nodes
  144. end
  145. self:setAllClockVisible(false)
  146. self:setOwnerVisible()
  147. self:stopAndHideBaoAnim()
  148. self:setXiaoJiaFlagVis(false)
  149. self:hideLeftCard()--隐藏剩余牌
  150. --小家不显示胡数
  151. self.ui.Items.ImageView_hushu_2:setVisible(false)
  152. self.ui.Items.TextBMFont_huxi_2:setVisible(false)
  153. end
  154. function hejiangRoomPlayerView:setArrowStateVisible(bVisible)
  155. for i = 1,ZPDef.GameMaxPlayer do
  156. self.allNodes[i].arrow:setVisible(bVisible)
  157. self.allNodes[i].arrow:stopAllActions()
  158. local txt = self.allNodes[i].arrow:getChildren()[1]
  159. if txt then
  160. txt:stopAllActions()
  161. end
  162. end
  163. end
  164. function hejiangRoomPlayerView:showArrowByViewId(viewId,bVisible,severTime)
  165. if self.allNodes[viewId] and self.allNodes[viewId].arrow and ZPFuc.getIsDelayTimeTip() then
  166. local txt = self.allNodes[viewId].arrow:getChildren()[1]
  167. self.allNodes[viewId].arrow:stopAllActions()
  168. if txt then
  169. txt:stopAllActions()
  170. local str = string.format("拖延%02d:%02d",0,0)
  171. txt:setText(str)
  172. end
  173. local function updateTime()
  174. local time = severTime or 0
  175. local seq = cc.Sequence:create(cc.DelayTime:create(1.0),cc.CallFunc:create(function ()
  176. time = time + 1
  177. local min = math.floor(time/60)
  178. local sec = time - 60 * min
  179. local str = string.format("拖延%02d:%02d",min,sec)
  180. if txt then
  181. txt:setText(str)
  182. end
  183. end))
  184. txt:runAction(cc.RepeatForever:create(seq))
  185. end
  186. if bVisible then
  187. local delTime = 9
  188. if severTime and severTime >= 8 then
  189. severTime = severTime - 9
  190. delTime = 0
  191. end
  192. self.allNodes[viewId].arrow:runAction(cc.Sequence:create(cc.DelayTime:create(delTime),cc.CallFunc:create(function ()
  193. self.allNodes[viewId].arrow:setVisible(bVisible)
  194. updateTime()
  195. end)))
  196. else
  197. self.allNodes[viewId].arrow:setVisible(bVisible)
  198. end
  199. end
  200. end
  201. --托管标签状态显示
  202. function hejiangRoomPlayerView:setTuoGuanFlagVisible(flag)
  203. flag = flag or false
  204. for i = 1,4 do
  205. if self.allNodes[i] and self.allNodes[i].tuoguan then
  206. self.allNodes[i].tuoguan:setVisible(flag)
  207. end
  208. end
  209. end
  210. function hejiangRoomPlayerView:showTuoGuanByViewId(viewId,bVisible)
  211. if not viewId then return end
  212. bVisible = bVisible or false
  213. if self.allNodes[viewId] and self.allNodes[viewId].tuoguan then
  214. self.allNodes[viewId].tuoguan:setVisible(bVisible)
  215. end
  216. end
  217. return hejiangRoomPlayerView