您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字

299 行
11 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJSound=MJFramework.MJImport("mj.luaScript.MJSound")
  3. local MJRoomDirection = class("MJRoomDirection", cc.UIView)
  4. function MJRoomDirection:ctor(desktopType)
  5. MJRoomDirection.super.ctor(self);
  6. -- self:updateView(desktopType)
  7. -- self.desktopType=desktopType
  8. -- local ui
  9. -- if self.desktopType==MJDefine.DesktopType.ThreeD then
  10. -- ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_room_direction.ui")
  11. -- else
  12. -- ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_room_direction_2d.ui")
  13. -- end
  14. -- self.ui = ui
  15. -- self:addChild(ui)
  16. end
  17. function MJRoomDirection:onEnter()
  18. MJRoomDirection.super.onEnter(self)
  19. -- self:initDirection()
  20. -- mj_direction.plist
  21. --加载表情图片
  22. -- cc.SpriteFrameCache:getInstance():addSpriteFramesWithFile("mj/res/ui/zy_fangjian/mj_direction.plist")
  23. end
  24. function MJRoomDirection:initDirection(desktopType)
  25. -- local nSeatId=roomInfo.nSeatId
  26. -- if self.desktopType==MJDefine.DesktopType.ThreeD then
  27. -- self:init3DDirection()
  28. -- else
  29. -- self:init2DDirection()
  30. -- end
  31. self:updateView(desktopType)
  32. self:updateGameNums()
  33. self:setVisible(true)
  34. end
  35. function MJRoomDirection:updateView(desktopType)
  36. if self.ui then
  37. self.ui:removeFromParent()
  38. end
  39. self.desktopType=desktopType
  40. if self.desktopType==MJDefine.DesktopType.ThreeD then
  41. if MJDefine.IS_NEW_3D then
  42. local path = "mj/res/ui/ui_fangjian/mj_ui_room_direction_3d.ui"
  43. self.ui = loadUI(path)
  44. -- self:init3DDirectionNew()
  45. else
  46. local path = "mj/res/ui/ui_fangjian/mj_ui_room_direction.ui"
  47. self.ui = loadUI(path)
  48. self:init3DDirection()
  49. end
  50. else
  51. self.ui = loadUI("mj/res/ui/ui_fangjian/mj_ui_room_direction_2d.ui")
  52. self:init2DDirection()
  53. end
  54. self:addChild(self.ui)
  55. if self.seatId then
  56. self.currentDir=nil
  57. self:updateDirection(self.seatId)
  58. end
  59. end
  60. function MJRoomDirection:init3DDirection()
  61. if self.desktopType==MJDefine.DesktopType.ThreeD and MJDefine.IS_NEW_3D then
  62. -- self:init3DDirection()
  63. return
  64. end
  65. local roomInfo=app.room.roomInfo
  66. local nBankSeatId=roomInfo.nBankSeatId
  67. local bankViewId=app.room:getViewIdBySeatId(nBankSeatId)
  68. if bankViewId==MJDefine.PlayerViewType.My then
  69. self.ui.Items.ImageView_Dir:loadTexture("3d/mj_dir_3d_bg_1.png",cc.TextureResType.plistType)
  70. self.ui.Items.ImageView_Dir_Down:loadTexture("3d/mj_dir_3d_1_down.png",cc.TextureResType.plistType)
  71. self.ui.Items.ImageView_Dir_Up:loadTexture("3d/mj_dir_3d_3_up.png",cc.TextureResType.plistType)
  72. self.ui.Items.ImageView_Dir_Left:loadTexture("3d/mj_dir_3d_2_left.png",cc.TextureResType.plistType)
  73. self.ui.Items.ImageView_Dir_Right:loadTexture("3d/mj_dir_3d_4_right.png",cc.TextureResType.plistType)
  74. self.direction=MJDefine.MJDirection.East
  75. elseif bankViewId==MJDefine.PlayerViewType.Left then
  76. self.ui.Items.ImageView_Dir:loadTexture("3d/mj_dir_3d_bg_4.png",cc.TextureResType.plistType)
  77. self.ui.Items.ImageView_Dir_Down:loadTexture("3d/mj_dir_3d_4_down.png",cc.TextureResType.plistType)
  78. self.ui.Items.ImageView_Dir_Up:loadTexture("3d/mj_dir_3d_2_up.png",cc.TextureResType.plistType)
  79. self.ui.Items.ImageView_Dir_Left:loadTexture("3d/mj_dir_3d_1_left.png",cc.TextureResType.plistType)
  80. self.ui.Items.ImageView_Dir_Right:loadTexture("3d/mj_dir_3d_3_right.png",cc.TextureResType.plistType)
  81. self.direction=MJDefine.MJDirection.South
  82. elseif bankViewId==MJDefine.PlayerViewType.Right then
  83. self.ui.Items.ImageView_Dir:loadTexture("3d/mj_dir_3d_bg_2.png",cc.TextureResType.plistType)
  84. self.ui.Items.ImageView_Dir_Down:loadTexture("3d/mj_dir_3d_2_down.png",cc.TextureResType.plistType)
  85. self.ui.Items.ImageView_Dir_Up:loadTexture("3d/mj_dir_3d_4_up.png",cc.TextureResType.plistType)
  86. self.ui.Items.ImageView_Dir_Left:loadTexture("3d/mj_dir_3d_3_left.png",cc.TextureResType.plistType)
  87. self.ui.Items.ImageView_Dir_Right:loadTexture("3d/mj_dir_3d_1_right.png",cc.TextureResType.plistType)
  88. self.direction=MJDefine.MJDirection.North
  89. elseif bankViewId==MJDefine.PlayerViewType.Top then
  90. self.ui.Items.ImageView_Dir:loadTexture("3d/mj_dir_3d_bg_3.png",cc.TextureResType.plistType)
  91. self.ui.Items.ImageView_Dir_Down:loadTexture("3d/mj_dir_3d_3_down.png",cc.TextureResType.plistType)
  92. self.ui.Items.ImageView_Dir_Up:loadTexture("3d/mj_dir_3d_1_up.png",cc.TextureResType.plistType)
  93. self.ui.Items.ImageView_Dir_Left:loadTexture("3d/mj_dir_3d_4_left.png",cc.TextureResType.plistType)
  94. self.ui.Items.ImageView_Dir_Right:loadTexture("3d/mj_dir_3d_2_right.png",cc.TextureResType.plistType)
  95. self.direction=MJDefine.MJDirection.West
  96. end
  97. end
  98. function MJRoomDirection:init2DDirection()
  99. local roomInfo=app.room.roomInfo
  100. local nBankSeatId=roomInfo.nBankSeatId
  101. local bankViewId=app.room:getViewIdBySeatId(nBankSeatId)
  102. if bankViewId==MJDefine.PlayerViewType.My then
  103. self.ui.Items.ImageView_Dir:setEulerRotation(cc.vec3(0,0,0))--("3d/mj_dir_3d_bg_1.png",cc.TextureResType.plistType)
  104. self.ui.Items.ImageView_Dir_Down:loadTexture("mj_dir_2d_down.png",cc.TextureResType.plistType)
  105. self.ui.Items.ImageView_Dir_Up:loadTexture("mj_dir_2d_up.png",cc.TextureResType.plistType)
  106. self.ui.Items.ImageView_Dir_Left:loadTexture("mj_dir_2d_left.png",cc.TextureResType.plistType)
  107. self.ui.Items.ImageView_Dir_Right:loadTexture("mj_dir_2d_right.png",cc.TextureResType.plistType)
  108. -- self.ui.Items.ImageView_Dir_Down:setEulerRotation(cc.vec3(0,0,0))
  109. -- self.ui.Items.ImageView_Dir_Up:setEulerRotation(cc.vec3(0,0,180))
  110. -- self.ui.Items.ImageView_Dir_Left:setEulerRotation(cc.vec3(0,0,-90))
  111. -- self.ui.Items.ImageView_Dir_Right:setEulerRotation(cc.vec3(0,0,90))
  112. self.direction=MJDefine.MJDirection.East
  113. elseif bankViewId==MJDefine.PlayerViewType.Left then
  114. -- self.ui.Items.ImageView_Dir:loadTexture("3d/mj_dir_3d_bg_4.png",cc.TextureResType.plistType)
  115. self.ui.Items.ImageView_Dir:setEulerRotation(cc.vec3(0,0,-90))
  116. self.ui.Items.ImageView_Dir_Down:loadTexture("mj_dir_2d_right.png",cc.TextureResType.plistType)
  117. self.ui.Items.ImageView_Dir_Up:loadTexture("mj_dir_2d_left.png",cc.TextureResType.plistType)
  118. self.ui.Items.ImageView_Dir_Left:loadTexture("mj_dir_2d_down.png",cc.TextureResType.plistType)
  119. self.ui.Items.ImageView_Dir_Right:loadTexture("mj_dir_2d_up.png",cc.TextureResType.plistType)
  120. -- self.ui.Items.ImageView_Dir_Down:setEulerRotation(cc.vec3(0,0,0))
  121. -- self.ui.Items.ImageView_Dir_Up:setEulerRotation(cc.vec3(0,0,180))
  122. -- self.ui.Items.ImageView_Dir_Left:setEulerRotation(cc.vec3(0,0,-90))
  123. -- self.ui.Items.ImageView_Dir_Right:setEulerRotation(cc.vec3(0,0,90))
  124. self.direction=MJDefine.MJDirection.South
  125. elseif bankViewId==MJDefine.PlayerViewType.Right then
  126. self.ui.Items.ImageView_Dir:setEulerRotation(cc.vec3(0,0,90))
  127. -- self.ui.Items.ImageView_Dir:loadTexture("3d/mj_dir_3d_bg_2.png",cc.TextureResType.plistType)
  128. self.ui.Items.ImageView_Dir_Down:loadTexture("mj_dir_2d_left.png",cc.TextureResType.plistType)
  129. self.ui.Items.ImageView_Dir_Up:loadTexture("mj_dir_2d_right.png",cc.TextureResType.plistType)
  130. self.ui.Items.ImageView_Dir_Left:loadTexture("mj_dir_2d_up.png",cc.TextureResType.plistType)
  131. self.ui.Items.ImageView_Dir_Right:loadTexture("mj_dir_2d_down.png",cc.TextureResType.plistType)
  132. -- self.ui.Items.ImageView_Dir_Down:setEulerRotation(cc.vec3(0,0,0))
  133. -- self.ui.Items.ImageView_Dir_Up:setEulerRotation(cc.vec3(0,0,180))
  134. -- self.ui.Items.ImageView_Dir_Left:setEulerRotation(cc.vec3(0,0,-90))
  135. -- self.ui.Items.ImageView_Dir_Right:setEulerRotation(cc.vec3(0,0,90))
  136. self.direction=MJDefine.MJDirection.North
  137. elseif bankViewId==MJDefine.PlayerViewType.Top then
  138. self.ui.Items.ImageView_Dir:setEulerRotation(cc.vec3(0,0,180))
  139. -- self.ui.Items.ImageView_Dir:loadTexture("3d/mj_dir_3d_bg_3.png",cc.TextureResType.plistType)
  140. self.ui.Items.ImageView_Dir_Down:loadTexture("mj_dir_2d_up.png",cc.TextureResType.plistType)
  141. self.ui.Items.ImageView_Dir_Up:loadTexture("mj_dir_2d_down.png",cc.TextureResType.plistType)
  142. self.ui.Items.ImageView_Dir_Left:loadTexture("mj_dir_2d_right.png",cc.TextureResType.plistType)
  143. self.ui.Items.ImageView_Dir_Right:loadTexture("mj_dir_2d_left.png",cc.TextureResType.plistType)
  144. -- self.ui.Items.ImageView_Dir_Down:setEulerRotation(cc.vec3(0,0,0))
  145. -- self.ui.Items.ImageView_Dir_Up:setEulerRotation(cc.vec3(0,0,180))
  146. -- self.ui.Items.ImageView_Dir_Left:setEulerRotation(cc.vec3(0,0,-90))
  147. -- self.ui.Items.ImageView_Dir_Right:setEulerRotation(cc.vec3(0,0,90))
  148. self.direction=MJDefine.MJDirection.West
  149. end
  150. end
  151. function MJRoomDirection:updateDirection(seatId)
  152. if not self.ui then return end
  153. self.seatId=seatId
  154. self.ui.Items.ImageView_Dir_Down:setVisible(false)
  155. self.ui.Items.ImageView_Dir_Up:setVisible(false)
  156. self.ui.Items.ImageView_Dir_Left:setVisible(false)
  157. self.ui.Items.ImageView_Dir_Right:setVisible(false)
  158. local viewId=app.room:getViewIdBySeatId(seatId)
  159. -- if self.currentDir then
  160. -- self.currentDir:setOpacity(255)
  161. -- self.currentDir:stopAllActions()
  162. -- end
  163. if viewId==MJDefine.PlayerViewType.My then
  164. self.ui.Items.ImageView_Dir_Down:setVisible(true)
  165. self.currentDir=self.ui.Items.ImageView_Dir_Down
  166. elseif viewId==MJDefine.PlayerViewType.Left then
  167. self.ui.Items.ImageView_Dir_Left:setVisible(true)
  168. self.currentDir=self.ui.Items.ImageView_Dir_Left
  169. elseif viewId==MJDefine.PlayerViewType.Right then
  170. self.ui.Items.ImageView_Dir_Right:setVisible(true)
  171. self.currentDir=self.ui.Items.ImageView_Dir_Right
  172. elseif viewId==MJDefine.PlayerViewType.Top then
  173. self.ui.Items.ImageView_Dir_Up:setVisible(true)
  174. self.currentDir=self.ui.Items.ImageView_Dir_Up
  175. end
  176. -- if self.currentDir then
  177. -- self.currentDir:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.FadeTo:create(1,0),cc.FadeTo:create(1,255))))
  178. -- end
  179. local gameInfo = app.room.roomInfo.strGameInfo
  180. local ttGameInfo = json.decode(gameInfo)
  181. -- 牌桌倒计时
  182. if ttGameInfo.hosting == 1 then
  183. self:runShotTime(viewId, tonumber(ttGameInfo.hostingtime) or 10)
  184. else
  185. self:runShotTime(viewId, 10)
  186. end
  187. end
  188. --倒计时
  189. function MJRoomDirection:runShotTime(viewId,time)
  190. local t=time or MJDefine.MJOutTime
  191. self.ui.Items.Text_Time:setString(string.format("%02d",t))
  192. self:stopAllActions()
  193. self:runAction(cc.RepeatForever:create(
  194. cc.Sequence:create(
  195. cc.DelayTime:create(1),
  196. cc.CallFunc:create(function()
  197. t=t-1
  198. if t<0 then
  199. t=0
  200. self:stopAllActions()
  201. elseif t>0 and t<=3 then
  202. if viewId==MJDefine.PlayerViewType.My then
  203. MJSound.PlayOutCardTip()
  204. end
  205. end
  206. self.ui.Items.Text_Time:setString(string.format("%02d",t))
  207. end)
  208. )
  209. ))
  210. end
  211. function MJRoomDirection:updateGameNums()
  212. if not self.ui or tolua.isnull(self.ui) then
  213. return
  214. end
  215. local roomInfo = app.room.roomInfo
  216. local leaveCount = roomInfo.nGameStartCount.."/"..roomInfo.nTotalGameNum--roomInfo.nTotalGameNum - (roomInfo.nGameStartCount or 0)
  217. -- local str = string.format("局数%d/%d", curCount, roomInfo.nTotalGameNum)
  218. if self.ui.Items.Text_Leave_Game_Num then
  219. self.ui.Items.Text_Leave_Game_Num:setText(leaveCount)
  220. end
  221. --更新牌数
  222. if self.ui.Items.Text_Leave_Card_Num then
  223. self.ui.Items.Text_Leave_Card_Num:setText(roomInfo.nLeaveCardNum or 0)
  224. end
  225. end
  226. --隐藏剩余牌
  227. function MJRoomDirection:hideLeftCardNums(isVisble)
  228. if MJDefine.IS_NEW_3D and self.desktopType == MJDefine.DesktopType.ThreeD then
  229. self.ui.Items.ImageView_4:setVisible(isVisble)
  230. end
  231. end
  232. --隐藏局数
  233. function MJRoomDirection:hideJuShuNum(isVisble)
  234. if MJDefine.IS_NEW_3D and self.desktopType == MJDefine.DesktopType.ThreeD then
  235. self.ui.Items.ImageView_3:setVisible(isVisble)
  236. end
  237. end
  238. return MJRoomDirection;