Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

347 linhas
9.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 ZPSound = ZPFramework.ZPImport("zp_base.luaScript.ZPSound")
  5. local ZPRoomPlayerView = ZPFramework.ZPFrameworkClassImprot("zp_base.luaScript.Views.Room.ZPRoomPlayerView")
  6. local changpaiRoomPlayerView = class("changpaiRoomPlayerView", ZPRoomPlayerView)
  7. function changpaiRoomPlayerView:ctor( ... )
  8. changpaiRoomPlayerView.super.ctor(self)
  9. end
  10. function changpaiRoomPlayerView:loadUI()
  11. local ui = loadUI("zp_changpai/res/ui/ui_fangjian/changpai_ui_PlayerView1.ui");
  12. self.ui = ui;
  13. self:addChild(ui);
  14. end
  15. function changpaiRoomPlayerView:onEnter()
  16. changpaiRoomPlayerView.super.onEnter(self)
  17. self:resetTuoGuanShow()
  18. end
  19. ---
  20. -- 托管显示
  21. -- @return
  22. --
  23. function changpaiRoomPlayerView:resetTuoGuanShow()
  24. for i=1,4 do
  25. self.ui.Items["ImageView_tuoguan_"..i]:setVisible(false)
  26. end
  27. end
  28. ---
  29. -- 显示指定玩家头像托管标识
  30. -- @param viewId
  31. -- @param bVisible
  32. -- @return
  33. --
  34. function changpaiRoomPlayerView:showTuoGuanByViewId(viewId,bVisible)
  35. self.ui.Items["ImageView_tuoguan_"..viewId]:setVisible(bVisible)
  36. end
  37. function changpaiRoomPlayerView:initPlayerNodes()
  38. -- 玩家节点名称模板
  39. local names =
  40. {
  41. player = "Layout_player_%d", -- 头像绿圈根节点
  42. head = "ImageView_head_%d", -- 头像
  43. headBoarder = "ImageView_head_border_%d", --头像边
  44. name = "Text_Name_%d", -- 名字
  45. score = "Text_Score_%d", -- 总分数
  46. banker = "ImageView_banker_%d", -- 庄家
  47. readyState = "ImageView_ready_%d", -- 准备
  48. headInfo = "Layout_headInfo_%d", --个人信息点击触发框
  49. offLine = "ImageView_offLine_%d", --离线标志
  50. --其他节点
  51. tip = "ImageView_tip_%d", --提示操作图
  52. clock = "ImageView_clock_%d", --闹钟
  53. txtClocl = "TextBMFont_clock_%d", --闹钟时间
  54. offLineTime = "Text_offLineTime_%d", --离线时间
  55. offLineTimeBg = "ImageView_txkYY_%d", --离线时间背景
  56. leftCardBg = "ImageView_LeftCardBg_%d", --剩余手牌背景
  57. leftCardNum = "TextBMFont_LeftCardNum_%d", --剩余手牌数量
  58. toujia = "ImageView_toujia_icon_%d", --头家角标
  59. xiaojia = "ImageView_xiao_icon_%d", --小家家角标
  60. baojiao = "ImageView_bao_icon_%d", --报叫角标
  61. tuoShu = "Text_tuoshuNum_%d", --坨数
  62. }
  63. self.allNodes = {}
  64. self.headSize = {}
  65. for i = 1,ZPDef.GameMaxPlayer do
  66. local nodes = {}
  67. --玩家根节点
  68. local namePlayer = string.format(names.player,i)
  69. local nodePlayer = self.ui.Items[namePlayer]
  70. nodes.player = nodePlayer
  71. --头像
  72. local nameHead = string.format(names.head,i)
  73. local nodeHead = self.ui.Items[nameHead]
  74. nodes.head = nodeHead
  75. nodeHead:setTouchEnabled(true)
  76. nodeHead:registerClick(function()
  77. self:onClickHead(i)
  78. end)
  79. local headBoarder = string.format(names.headBoarder,i)
  80. local nodeheadBoarder = self.ui.Items[headBoarder]
  81. nodes.headBoarder = nodeheadBoarder
  82. -- 需要记录头像的原始尺寸
  83. if not self.headSize.width then
  84. self.headSize.width = nodeHead:getContentSize().width
  85. self.headSize.height = nodeHead:getContentSize().height
  86. end
  87. --昵称
  88. local nickName = string.format(names.name,i)
  89. local nodeName = self.ui.Items[nickName]
  90. nodes.name = nodeName
  91. nodeName:setText("")
  92. --总分
  93. local nickScore = string.format(names.score,i)
  94. local nodeScore = self.ui.Items[nickScore]
  95. nodes.score = nodeScore
  96. --坨数
  97. local nicktuoShu = string.format(names.tuoShu,i)
  98. local nodetuoShu = self.ui.Items[nicktuoShu]
  99. nodes.tuoShu = nodetuoShu
  100. --庄家
  101. local nameBanker = string.format(names.banker,i)
  102. local nodeBanker = self.ui.Items[nameBanker]
  103. nodes.banker = nodeBanker
  104. nodes.banker.pos = nodeBanker:getPosition()
  105. --准备
  106. local nameReadyState = string.format(names.readyState,i)
  107. local nodeReadyState = self.ui.Items[nameReadyState]
  108. nodes.readyState = nodeReadyState
  109. --头像信息
  110. local headInfo = string.format(names.headInfo,i)
  111. local nodeheadInfo = self.ui.Items[headInfo]
  112. nodes.headInfo = nodeheadInfo
  113. --离线信息
  114. local offLine = string.format(names.offLine,i)
  115. local nodeoffLine = self.ui.Items[offLine]
  116. nodes.offLine = nodeoffLine
  117. --tip
  118. local nameTip = string.format(names.tip,i)
  119. local nodeTip = self.ui.Items[nameTip]
  120. nodes.tip = nodeTip
  121. --闹钟
  122. local nameClock = string.format(names.clock,i)
  123. local nodeClock = self.ui.Items[nameClock]
  124. nodes.clock = nodeClock
  125. --闹钟时间
  126. local nametxtClock = string.format(names.txtClocl,i)
  127. local nodetxtClock = self.ui.Items[nametxtClock]
  128. nodes.txtclock = nodetxtClock
  129. --离线时间
  130. local nameoffLineTime = string.format(names.offLineTime,i)
  131. local nodeoffLineTime = self.ui.Items[nameoffLineTime]
  132. nodes.offLineTime = nodeoffLineTime
  133. --离线时间背景
  134. local nameoffLineTimeBg = string.format(names.offLineTimeBg,i)
  135. local nodeoffLineTimeBg = self.ui.Items[nameoffLineTimeBg]
  136. nodes.offLineTimeBg = nodeoffLineTimeBg
  137. nodes.offLineTimeBg:setVisible(false)
  138. --剩余手牌背景
  139. local nameleftCardBg = string.format(names.leftCardBg,i)
  140. local nodeleftCardBg = self.ui.Items[nameleftCardBg]
  141. nodes.leftCardBg = nodeleftCardBg
  142. --剩余手牌数量
  143. local nameleftCardNum = string.format(names.leftCardNum,i)
  144. local nodeleftCardNum = self.ui.Items[nameleftCardNum]
  145. nodes.leftCardNum = nodeleftCardNum
  146. --头家
  147. local toujia = string.format(names.toujia,i)
  148. local nodetoujia = self.ui.Items[toujia]
  149. nodes.toujia = nodetoujia
  150. --小家
  151. local xiaojia = string.format(names.xiaojia,i)
  152. local nodexiaojia = self.ui.Items[xiaojia]
  153. nodes.xiaojia = nodexiaojia
  154. --报叫
  155. local baojiao = string.format(names.baojiao,i)
  156. local nodebaojiao = self.ui.Items[baojiao]
  157. nodes.baojiao = nodebaojiao
  158. self.allNodes[i] = nodes
  159. end
  160. self:setAllClockVisible(false)
  161. self:setOwnerVisible()
  162. self:stopAndHideBaoAnim()
  163. self:setXiaoJiaFlagVis(false)
  164. self:hideLeftCard()--隐藏剩余牌
  165. self:hideTouJia()
  166. self:hideXiaoJia()
  167. self:hideBaoJiao()
  168. end
  169. --隐藏头家
  170. function changpaiRoomPlayerView:hideTouJia()
  171. for i = 1,ZPDef.GameMaxPlayer do
  172. self.allNodes[i].toujia:setVisible(false)
  173. end
  174. end
  175. --设置某个玩家为头家
  176. function changpaiRoomPlayerView:setPlayerTouJiaVisible(viewId,bVisible)
  177. if self.allNodes[viewId] then
  178. self.allNodes[viewId].toujia:setVisible(bVisible)
  179. return true
  180. end
  181. return false
  182. end
  183. --隐藏小家
  184. function changpaiRoomPlayerView:hideXiaoJia()
  185. for i = 1,ZPDef.GameMaxPlayer do
  186. self.allNodes[i].xiaojia:setVisible(false)
  187. end
  188. end
  189. --设置某个玩家为小家
  190. function changpaiRoomPlayerView:setPlayerXiaoJiaVisible(viewId,bVisible)
  191. if self.allNodes[viewId] then
  192. self.allNodes[viewId].xiaojia:setVisible(bVisible)
  193. return true
  194. end
  195. return false
  196. end
  197. --隐藏报叫
  198. function changpaiRoomPlayerView:hideBaoJiao()
  199. for i = 1,ZPDef.GameMaxPlayer do
  200. self.allNodes[i].baojiao:setVisible(false)
  201. end
  202. end
  203. --设置某个报叫
  204. function changpaiRoomPlayerView:setPlayerBaoJiaoVisible(viewId,bVisible)
  205. if self.allNodes[viewId] then
  206. self.allNodes[viewId].baojiao:setVisible(bVisible)
  207. return true
  208. end
  209. return false
  210. end
  211. --隐藏房主
  212. function changpaiRoomPlayerView:setOwnerVisible()
  213. end
  214. --设置某个房主Visible
  215. function changpaiRoomPlayerView:setPlayerOwnerVisible(viewId,bVisible)
  216. return false
  217. end
  218. --设置胡息归0
  219. function changpaiRoomPlayerView:setHuXizero()
  220. end
  221. --设置某个玩家胡息
  222. function changpaiRoomPlayerView:setPlayerHuXi(viewId,huxi)
  223. end
  224. function changpaiRoomPlayerView:stopAndHideBaoAnim()
  225. end
  226. function changpaiRoomPlayerView:playBaoAnim(view)
  227. end
  228. --设置小家标志显示
  229. function changpaiRoomPlayerView:setXiaoJiaFlagVis(vis)
  230. end
  231. --设置某个庄家Visible
  232. function changpaiRoomPlayerView:setPlayerBankerVisible(viewId,bVisible)
  233. return false
  234. end
  235. function changpaiRoomPlayerView:setLeftCardNum(viewId,bVisible,num)
  236. if bVisible and bVisible == true then
  237. if self.allNodes[viewId] and self.allNodes[viewId].leftCardNum then
  238. self.allNodes[viewId].leftCardBg:setVisible(bVisible)
  239. self.allNodes[viewId].leftCardNum:setVisible(bVisible)
  240. self.allNodes[viewId].leftCardNum:setText(num)
  241. end
  242. end
  243. end
  244. --用户行为提示
  245. function changpaiRoomPlayerView:showOperatorTip(viewId,mType)
  246. local tip = self.allNodes[viewId].tip
  247. local time = 1.3
  248. tip:setVisible(true)
  249. local count = 0
  250. if mType == ZPDef.OpType.OP_TYPE_CANCEL then
  251. tip:loadTextureFromPlist(ZPDef.TipFile.GUO)
  252. elseif mType == ZPDef.OpType.OP_TYPE_CHI then
  253. tip:loadTexture(ZPDef.TipFile.CHI)
  254. elseif mType == ZPDef.OpType.OP_TYPE_PENG then
  255. tip:loadTexture(ZPDef.TipFile.PENG)
  256. elseif mType == ZPDef.OpType.OP_TYPE_BA then
  257. tip:loadTexture(ZPDef.TipFile.BA)
  258. elseif mType == ZPDef.OpType.OP_TYPE_TOU then
  259. tip:loadTexture(ZPDef.TipFile.TOU)
  260. elseif mType == ZPDef.OpType.OP_TYPE_HU then
  261. time = 2.0
  262. if app.room.roomInfo.huType and app.room.roomInfo.huType >= 0 then
  263. local name = string.format(ZPDef.TipFile.HU,app.room.roomInfo.huType)
  264. tip:loadTextureFromPlist(name)
  265. end
  266. elseif mType == -55 then--单独处理爆牌动画
  267. tip:loadTexture(ZPDef.TipFile.BAOJIAO)
  268. elseif mType == -56 then
  269. tip:loadTexture(ZPDef.TipFile.BAOPEI)
  270. end
  271. --音效
  272. local nUserId = app.room:getUserIdByViewId(viewId)
  273. local userInfo=app.room:getUserInfo(nUserId)
  274. if userInfo then
  275. ZPSound.PlayOperateSound(userInfo.sex,mType)
  276. end
  277. tip:setScale(3.0)
  278. local seq = cc.Sequence:create(cc.ScaleTo:create(0.2,1),cc.DelayTime:create(time),cc.CallFunc:create(function ()
  279. tip:setVisible(false)
  280. end))
  281. tip:runAction(seq)
  282. end
  283. --设置某个玩家坨数
  284. function changpaiRoomPlayerView:setPlayerTuoShu(viewId,strTuoShu)
  285. if self.allNodes[viewId] and self.allNodes[viewId].tuoShu then
  286. self.allNodes[viewId].tuoShu:setText(tostring(strTuoShu))
  287. end
  288. end
  289. return changpaiRoomPlayerView