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.

341 lines
9.0 KiB

  1. local MJSound=MJFramework.MJImport("mj.luaScript.MJSound")
  2. -- 主界面
  3. local MJMainView = class("MJMainView", cc.UIView)
  4. -- require("LiuHuQiangDef")
  5. -- require("LiuHuQiangFunctions")
  6. -- local MJRoomReplayView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomReplayView")
  7. -- local MJAnimationCompnent=MJFramework.MJImport("mj.luaScript.Views.Compnent.MJAnimationCompnent")
  8. -- local MJRoomDaJuView=MJFramework.MJImport("mj.luaScript.Views.Room.MJRoomDaJuView")
  9. -- local MJHandCardView=MJFramework.MJImport("mj.luaScript.Views.Game.MJHandCardView")
  10. function MJMainView:ctor()
  11. MJMainView.super.ctor(self);
  12. self:loadUI()
  13. MJSound.PlayHallBGM()
  14. end
  15. function MJMainView:loadUI()
  16. local ui = loadUI("mj/res/ui/ui_dating/mj_ui_hall.ui");
  17. self.ui = ui;
  18. self:addChild(ui);
  19. end
  20. function MJMainView:onEnter()
  21. MJMainView.super.onEnter(self)
  22. -- MJDefine.getMjValue(0x25)
  23. -- local sprite=MJAnimationCompnent.CreateOperareEffect(MJDefine.MJOperateType.OPREATE_PENG)
  24. -- self:addChild(sprite)
  25. -- sprite:setPosition(640,360)
  26. -- local bg=cc.Sprite:create("mj/res/ui/zy_fangjian/mj_3d_bg.png")--"mj/res/test.png")
  27. -- self:addChild(bg)
  28. -- bg:setPosition(640,360)
  29. -- local views={}
  30. -- local view = MJHandCardView:new(nil,MJDefine.DesktopType.TwoD)
  31. -- self:addChild(view)
  32. -- table.insert(views,view)
  33. -- local view = MJHandCardView:new(MJDefine.PlayerViewType.Left,MJDefine.DesktopType.TwoD)
  34. -- self:addChild(view)
  35. -- table.insert(views,view)
  36. -- local view = MJHandCardView:new(MJDefine.PlayerViewType.Right,MJDefine.DesktopType.TwoD)
  37. -- self:addChild(view)
  38. -- table.insert(views,view)
  39. -- local view = MJHandCardView:new(MJDefine.PlayerViewType.Top,MJDefine.DesktopType.TwoD)
  40. -- self:addChild(view)
  41. -- table.insert(views,view)
  42. -- MJAnimationCompnent.CreateStartSendCards(views)
  43. -- app:addProtocolZhanJi(GAME_IDS.LiuHuQiang)
  44. -- local view=MJRoomReplayView:new()
  45. -- self:addChild(view)
  46. -- local view=MJRoomDaJuView:new()
  47. -- 初始化玩家信息
  48. self:initUserInfo()
  49. -- 返回大厅
  50. self.ui.Items.Button_Back:registerClick(handler(self, self.OnClickButtonBack))
  51. self.ui.Items.Button_Coin_Buy:setVisible(false)
  52. -- 创建房间
  53. self.ui.Items.Button_Coin:registerClick(handler(self, self.OnClickCoinMode))
  54. self.ui.Items.Button_Coin:setVisible(false)
  55. -- 创建房间
  56. self.ui.Items.Button_Create:registerClick(handler(self, self.OnClickButtonCreate))
  57. -- 加入房间
  58. self.ui.Items.Button_Join:registerClick(handler(self, self.OnClickButtonJoin))
  59. --战绩
  60. self.ui.Items.Button_ZhanJi:registerClick(handler(self,self.OnClickButtonZhanJi))
  61. --帮助
  62. self.ui.Items.Button_Help:registerClick(handler(self,self.OnClickWanFa))
  63. --设置
  64. self.ui.Items.Button_Set:registerClick(handler(self,self.OnClickSet))
  65. --代开列表
  66. self.ui.Items.Button_List:registerClick(handler(self,self.OnClickList))
  67. if isRuanZhu() then
  68. if tonumber(app.gameId) == GAME_IDS.HongZhong then
  69. self.ui.Items.ImageView_title:loadTexture("mj_hall_title_hunanmj.png", cc.TextureResType.plistType)
  70. end
  71. end
  72. self:initNotice()
  73. self:initVersion()
  74. self:initZhanJiProtocol()
  75. end
  76. function MJMainView:initZhanJiProtocol()
  77. -- 注册战绩协议
  78. app:addProtocolZhanJi(app.gameId)
  79. -- 拉取战绩数据
  80. local protocolZhanJi = app:getProtocolZhanJi(app.gameId)
  81. if protocolZhanJi then
  82. protocolZhanJi:init()
  83. end
  84. end
  85. -- 初始化用户信息
  86. function MJMainView:initUserInfo()
  87. local userInfo = json.decode(app.user.userInfo);
  88. local id = tonumber(app.user.loginInfo.uid) or 0
  89. self.ui.Items.Text_ID:setText(string.format("ID:%06d", id))
  90. local nickname = getSubStringNickname(userInfo.nickname,self.ui.Items.Text_Name)
  91. self.ui.Items.Text_Name:setText(nickname or tostring("游客"..app.user.loginInfo.uid))
  92. -- 房卡数量
  93. self.ui.Items.Text_Diamond:bind(app.user.loginInfo, "curCardNum", function()
  94. self.ui.Items.Text_Diamond:setString(tostring(app.user.loginInfo.curCardNum))
  95. end)
  96. --金币数量
  97. self.ui.Items.Text_Coin:bind(app.user.loginInfo, "curJingbiNum", function()
  98. local num = tonumber(app.user.loginInfo.curJingbiNum) or 0
  99. num = num + 2000
  100. local str
  101. if num > 100000 then
  102. str = tostring(math.floor(num / 1000) / 10).."W"
  103. else
  104. str = tostring(num)
  105. end
  106. self.ui.Items.Text_Coin:setString(str)
  107. end)
  108. local nodeHead = self.ui.Items.ImageView_Head;
  109. setPlayerHeadImage(app.user.loginInfo.uid, userInfo.headimgurl, nodeHead)
  110. end
  111. -- 返回大厅
  112. function MJMainView:OnClickButtonBack()
  113. playBtnEffect()
  114. --app:gotoView(import("luaScript.Views.Main.MainView"):new())
  115. gotoMainView()
  116. end
  117. -- 创建房间
  118. function MJMainView:OnClickCoinMode()
  119. playBtnEffect()
  120. showTooltip("敬请期待!")
  121. end
  122. -- 创建房间
  123. function MJMainView:OnClickButtonCreate()
  124. playBtnEffect()
  125. local MJCreateRoomView=MJFramework.MJImport("mj.luaScript.Views.Main.MJCreateRoomView")
  126. local view = MJCreateRoomView:new()
  127. view:setAnchorPoint(cc.p(0.5, 0.5))
  128. app:showWaitDialog(view)
  129. end
  130. -- 加入房间
  131. function MJMainView:OnClickButtonJoin()
  132. playBtnEffect()
  133. local view = import("luaScript.Views.Main.JoinRoomView"):new(app.gameId)
  134. view:setAnchorPoint(cc.p(0.5, 0.5))
  135. app:showWaitDialog(view)
  136. end
  137. -- 玩法
  138. function MJMainView:OnClickWanFa()
  139. playBtnEffect()
  140. local MJWanFa=MJFramework.ImportWanFa("luaScript.SubGameDefine.MaJiang.MJWanFa")
  141. local view = import("luaScript.Views.Main.HelpView"):new(MJWanFa.ruleText)
  142. view:setAnchorPoint(cc.p(0.5, 0.5))
  143. app:showWaitDialog(view)
  144. -- local sprite=MJAnimationCompnent.CreateOperareEffect(MJDefine.MJOperateType.OPREATE_PENG)
  145. -- self:addChild(sprite)
  146. -- sprite:setPosition(640,360)
  147. end
  148. --设置
  149. function MJMainView:OnClickSet()
  150. playBtnEffect()
  151. local view = import("luaScript.Views.Main.MainSettingView"):new()
  152. view:setAnchorPoint(cc.p(0.5, 0.5))
  153. app:showWaitDialog(view)
  154. end
  155. --战绩
  156. function MJMainView:OnClickButtonZhanJi()
  157. playBtnEffect()
  158. --showTooltip("敬请期待!")
  159. local view = import("mj.luaScript.Views.Zhanji.MJZhanJiView"):new();
  160. view:setAnchorPoint(cc.p(0.5, 0.5))
  161. app:showWaitDialog(view)
  162. end
  163. --房间列表
  164. function MJMainView:OnClickList()
  165. playBtnEffect()
  166. local view = import("mj.luaScript.Views.Main.MJRoomListView"):new();
  167. view:setAnchorPoint(cc.p(0.5, 0.5))
  168. app:showWaitDialog(view)
  169. end
  170. -- 初始化公告
  171. function MJMainView:initNotice()
  172. self.index = 0
  173. --[[self.noticeTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
  174. local list = self.ui.Items.PageView:getPages()
  175. local max = table.nums(list)
  176. self.index = self.index + 1
  177. if self.index >= max then
  178. self.index = 0
  179. end
  180. self.ui.Items.PageView:scrollToPage(self.index)
  181. end,3.0,false)--]]
  182. -- 公告内容模板
  183. self.templatePage = self.ui.Items.Layout_PageItem
  184. self.templatePage:setVisible(false)
  185. -- 公告圆点
  186. self.templateDian = self.ui.Items.Layout_DianItem
  187. self.templateDian:setVisible(false)
  188. -- 清空
  189. local uiPageView = self.ui.Items.PageView
  190. local uiLayoutDian = self.ui.Items.Layout_Dian
  191. uiPageView:removeAllChildren()
  192. uiLayoutDian:removeAllChildren()
  193. local function createNoticeItem(imageName)
  194. local uiItem = self.templatePage:getCopied()
  195. uiItem.Items = getUIItems(uiItem)
  196. dump(app.php.daili)
  197. local dailis=app.php.daili[app.gameId] or app.php.daili[-1] or {}
  198. local text=""
  199. for k,v in pairs(dailis) do
  200. if text=="" then
  201. text=v
  202. else
  203. text=text..","..v
  204. end
  205. end
  206. uiItem.Items.Text_WeiXinId:setString(text)
  207. --[[
  208. local texture = loadTextureFromFile(imageName)
  209. if texture then
  210. uiItem:loadTextures(texture)
  211. end
  212. --]]
  213. return uiItem
  214. end
  215. local function createDianItem()
  216. local uiItem = self.templateDian:getCopied()
  217. uiItem.Items = getUIItems(uiItem)
  218. uiItem.setSelected = function(bSelected)
  219. uiItem.Items.ImageView_DianD:setVisible(bSelected)
  220. end
  221. uiItem.setSelected(false)
  222. return uiItem
  223. end
  224. -- 所有的原点
  225. local ttDian = {}
  226. -- 监听滑动事件
  227. uiPageView:addEventListener(function()
  228. local idxPage = uiPageView:getCurPageIndex()
  229. logD(idxPage)
  230. self.index = idxPage
  231. local idxDian = tonumber(idxPage) + 1
  232. for k,v in pairs(ttDian) do
  233. v.setSelected(tonumber(k) == tonumber(idxDian))
  234. end
  235. end)
  236. -- 加载公告
  237. for i = 1,1 do
  238. local uiNoticePage = createNoticeItem("")
  239. uiPageView:addPage(uiNoticePage)
  240. local uiDian = createDianItem()
  241. uiLayoutDian:addChild(uiDian)
  242. ttDian[i] = uiDian
  243. end
  244. -- 默认选中第一个
  245. if table.nums(ttDian) > 0 then
  246. ttDian[1].setSelected(true)
  247. end
  248. end
  249. function MJMainView:onExit()
  250. MJMainView.super.onExit(self)
  251. if self.noticeTimer then
  252. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.noticeTimer)
  253. end
  254. stopBGMusic()
  255. -- MJFramework.Clean()
  256. end
  257. -- 初始化游戏版本信息
  258. function MJMainView:initVersion()
  259. if isReviewVersion() then
  260. self.ui.Items.Layout_Version:setVisible(false)
  261. return
  262. end
  263. self.ui.Items.Text_Type:setVisible(isDebug())
  264. local mjInfo = require("mj.luaScript.MJVersion")
  265. local versionInfo = MJFramework.MJImport("mj.luaScript.MJVersion")--require("HongZhongVersion")
  266. self.ui.Items.Text_Version:setText("Res.v."..mjInfo.ResourceVersion.."."..versionInfo.ResourceVersion)
  267. end
  268. return MJMainView