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.

233 lines
5.7 KiB

  1. -- 主界面
  2. local JoinRoomView = class("JoinRoomView", cc.UIView)
  3. function JoinRoomView:ctor(gameId)
  4. JoinRoomView.super.ctor(self);
  5. local ui = loadUI("res/ui/ui_dating/ui_jiarufangjian.ui");
  6. self.ui = ui;
  7. self:addChild(ui);
  8. self.gameId = gameId;
  9. self.numbers = {};
  10. self.images =
  11. {
  12. [0] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_0.png",
  13. [1] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_1.png",
  14. [2] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_2.png",
  15. [3] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_3.png",
  16. [4] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_4.png",
  17. [5] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_5.png",
  18. [6] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_6.png",
  19. [7] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_7.png",
  20. [8] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_8.png",
  21. [9] = "res/ui/zy_dating/jiaru/JoinRoom_shuzi_9.png",
  22. }
  23. end
  24. function JoinRoomView:onEnter()
  25. JoinRoomView.super.onEnter(self)
  26. -- 房间号图片
  27. self.numberImage = {}
  28. self.numberImage[1] = self.ui.Items.ImageView_fangjianhao_1
  29. self.numberImage[2] = self.ui.Items.ImageView_fangjianhao_2
  30. self.numberImage[3] = self.ui.Items.ImageView_fangjianhao_3
  31. self.numberImage[4] = self.ui.Items.ImageView_fangjianhao_4
  32. self.numberImage[5] = self.ui.Items.ImageView_fangjianhao_5
  33. self.numberImage[6] = self.ui.Items.ImageView_fangjianhao_6
  34. -- 键盘按钮
  35. self.numberButton = {}
  36. self.numberButton[0] = self.ui.Items.Button_10
  37. self.numberButton[1] = self.ui.Items.Button_1
  38. self.numberButton[2] = self.ui.Items.Button_2
  39. self.numberButton[3] = self.ui.Items.Button_3
  40. self.numberButton[4] = self.ui.Items.Button_4
  41. self.numberButton[5] = self.ui.Items.Button_5
  42. self.numberButton[6] = self.ui.Items.Button_6
  43. self.numberButton[7] = self.ui.Items.Button_7
  44. self.numberButton[8] = self.ui.Items.Button_8
  45. self.numberButton[9] = self.ui.Items.Button_9
  46. for k,v in pairs(self.numberButton) do
  47. v:registerClick(function()
  48. self:onClickNumber(k)
  49. end)
  50. end
  51. -- 重输
  52. self.ui.Items.Button_11:registerClick(function()
  53. self:onClickReturn()
  54. end)
  55. -- 回删
  56. self.ui.Items.Button_12:registerClick(handler(self , self.onClickBack))
  57. -- 关闭
  58. self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose))
  59. -- 一键加入(手机无效)
  60. self.ui.Items.btnTest:registerClick(handler(self , self.onClickTest))
  61. self.ui.Items.btnTest:setVisible(cc.Application:getInstance():getTargetPlatform() == 0)
  62. -- 监听事件
  63. self:bindEvent(app.hall , "onJoinRoomResponse", handler(self , self.onJoinRoomResponse));
  64. -- self:onClickReturn()
  65. self:restNumbers()
  66. end
  67. -- 监听事件
  68. function JoinRoomView:onJoinRoomResponse(event)
  69. if not event then
  70. return
  71. end
  72. local errCode = event.errCode
  73. if errCode ~= 0 then
  74. local errString = ENTER_ROOM_RET_STR[errCode] or "房间不存在"
  75. showTooltip(errString);
  76. end
  77. -- self:onClickReturn();
  78. self:restNumbers()
  79. end
  80. function JoinRoomView:restNumbers()
  81. self.numbers = {}
  82. self:updateNumbers()
  83. end
  84. -- 关闭
  85. function JoinRoomView:onClickClose()
  86. playBtnCloseEffect()
  87. self:removeFromParent()
  88. end
  89. -- 重输
  90. function JoinRoomView:onClickReturn()
  91. playBtnEffect()
  92. self:restNumbers()
  93. end
  94. --一键加入
  95. function JoinRoomView:onClickTest()
  96. local n = cc.UserDefault:getInstance():getIntegerForKey("LastRoomID",0)
  97. if n == 0 then
  98. showTooltip("请先开个房间")
  99. return
  100. end
  101. self.numbers[1] = math.floor(n / 100000 % 10)
  102. self.numbers[2] = math.floor(n / 10000 % 10)
  103. self.numbers[3] = math.floor(n / 1000 % 10)
  104. self.numbers[4] = math.floor(n / 100 % 10)
  105. self.numbers[5] = math.floor(n / 10 % 10)
  106. self.numbers[6] = math.floor(n / 1 % 10)
  107. self:updateNumbers();
  108. self:onClickOk()
  109. end
  110. -- 回删
  111. function JoinRoomView:onClickBack()
  112. playBtnEffect()
  113. local num = #self.numbers
  114. if num <= 0 then
  115. return;
  116. end
  117. table.remove(self.numbers, num)
  118. self:updateNumbers()
  119. end
  120. -- 数字
  121. function JoinRoomView:onClickNumber(number)
  122. playBtnEffect()
  123. if #self.numbers >= 6 then
  124. return
  125. end
  126. table.insert(self.numbers, number)
  127. self:updateNumbers()
  128. if #self.numbers >= 6 then
  129. self:onClickOk()
  130. end
  131. end
  132. function JoinRoomView:onClickOk()
  133. if not isEnableEnterRoom() then
  134. return
  135. end
  136. local str = ""
  137. for i = 1,#self.numbers do
  138. str = str..self.numbers[i]
  139. end
  140. local room_id = tonumber(str)
  141. print("用户的房间号:"..room_id)
  142. logI(tostring(self.gameId))
  143. if self.gameId then
  144. app.hall:requestJoinRoom(self.gameId, room_id)
  145. else
  146. app.hall:queryRoomId(room_id, handler(self, self.onQueryRoomResponse));
  147. end
  148. end
  149. function JoinRoomView:onQueryRoomResponse(gameId, roomId)
  150. if not gameId or tonumber(gameId) <= 0 then
  151. showTooltip("房间号不存在")
  152. return
  153. end
  154. local function requestJoinRoom()
  155. app.hall:requestJoinRoom(gameId, roomId)
  156. end
  157. -- 尝试进入房间
  158. local function tryJoinRoom()
  159. local result, subGameId, missingFiles = app.subGameManager:checkGameFiles(gameId)
  160. if not result then
  161. logD("JoinRoomView::onQueryRoomResponse() 发现子游戏文件缺失,gameId = "..subGameId)
  162. for k,v in pairs(missingFiles) do
  163. logD(v);
  164. end
  165. local function onOk()
  166. app.subGameManager:clearGame(subGameId);
  167. downloadSubGame(subGameId, tryEnterRoom);
  168. end
  169. showConfirmDialog("发现文件缺失,点击确定开始修复", onOk);
  170. else
  171. requestJoinRoom();
  172. end
  173. end
  174. -- 检查这个子游戏是否已安装
  175. if app.subGameManager then
  176. if not app.subGameManager:isInstaller(gameId) then
  177. requestDownloadSubGame(gameId, tryJoinRoom, true)
  178. else
  179. tryJoinRoom();
  180. end
  181. else
  182. showTooltip("SubGameManager is nil")
  183. end
  184. end
  185. --
  186. function JoinRoomView:updateNumbers()
  187. for k,v in pairs(self.numberImage) do
  188. if self.numbers[k] then
  189. v:setVisible(true)
  190. local num = self.numbers[k]
  191. local image = self.images[num];
  192. v:loadTexture(image);
  193. else
  194. v:setVisible(false)
  195. end
  196. end
  197. end
  198. return JoinRoomView;