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.

314 regels
12 KiB

  1. -- 房间设置界面
  2. local ZPDef = ZPFramework.ZPImport("zp_base.luaScript.ZPDef")
  3. local ZPFuc = ZPFramework.ZPImport("zp_base.luaScript.ZPFunctions")
  4. local ZPSound = ZPFramework.ZPImport("zp_base.luaScript.ZPSound")
  5. local ErWuRoomSettingView = class("ErWuRoomSettingView", cc.UIView)
  6. function ErWuRoomSettingView:ctor()
  7. ErWuRoomSettingView.super.ctor(self);
  8. self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new()
  9. self.musicRadioManager = import("luaScript.Tools.RadioManager"):new()
  10. self.languageRadioManager = import("luaScript.Tools.RadioManager"):new()
  11. self.colorRadioManager = import("luaScript.Tools.RadioManager"):new()
  12. self.viewTypeRadioManager = import("luaScript.Tools.RadioManager"):new()
  13. end
  14. local CheckBox_Nor_Color = cc.c3b(21,99,97)
  15. local CheckBox_Sel_Color = cc.c3b(213,46,11)
  16. function ErWuRoomSettingView:loadUI()
  17. local ui = loadUI("zp_erwu/res/ui/ui_fangjian/erwu_ui_shezhi.ui");
  18. self.ui = ui;
  19. self:addChild(ui);
  20. end
  21. function ErWuRoomSettingView:onEnter()
  22. ErWuRoomSettingView.super.onEnter(self)
  23. self:loadUI()
  24. -- 关闭
  25. self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose))
  26. --音乐
  27. self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickYinYue))
  28. self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music);
  29. -- 音效
  30. self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickYinXiao))
  31. self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound);
  32. --音乐音量
  33. self.ui.Items.SliderMusic:setPercent(app.systemSetting.info.musicVolume * 100 or 100)
  34. self.ui.Items.SliderMusic:addEventListener(handler(self, self.onMusicVolumeClickSlider))
  35. --音效音量
  36. self.ui.Items.SliderEffect:setPercent(app.systemSetting.info.soundVolume * 100 or 100)
  37. self.ui.Items.SliderEffect:addEventListener(handler(self, self.onSoundVolumeClickSlider))
  38. self.ui.Items.CheckBox_PuTongHua:setVisible(false)
  39. self.languageRadioManager:addItem(self.ui.Items.CheckBox_ChenZhou, ZPDef.GameLanguageType.FANG_YAN);
  40. self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, ZPDef.GameLanguageType.PU_TONG_HUA);
  41. local cacheLan = "LanguageType"..(ZPDef.GameID or app.gameId)
  42. local languageType = tonumber(loadUserInfo(cacheLan)) or ZPDef.GameLanguageType.PU_TONG_HUA
  43. self.languageRadioManager:setDefault(languageType)
  44. self:setYuColor(languageType)
  45. self.languageRadioManager:setDefault(ZPDef.GameLanguageType.FANG_YAN)
  46. local function callback(idx)
  47. saveUserInfo(cacheLan,idx)
  48. self:setYuColor(idx)
  49. end
  50. self.languageRadioManager:setCallback(callback)
  51. local cacheGameBgPic = "gameBgPicture"..(ZPDef.GameID or app.gameId)
  52. if self.desktopRadioManager then
  53. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_1, 1)
  54. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_2, 2)
  55. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_3, 3)
  56. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_4, 4)
  57. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_5, 5)
  58. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_zm_bg_6, 6)
  59. local defaultValue = tonumber(loadUserInfo(cacheGameBgPic)) or 2
  60. self.desktopRadioManager:setDefault(defaultValue)
  61. self:setZhuoColor(defaultValue)
  62. self.desktopRadioManager:setCallback(function ( value )
  63. self:setZhuoColor(value)
  64. --更换牌背
  65. app:dispatchEvent({name = "onChangeTable", idx = value});
  66. end)
  67. end
  68. local cacheMusic = "gameBgMusic"..(ZPDef.GameID or app.gameId)
  69. if self.musicRadioManager then
  70. self.musicRadioManager:addItem(self.ui.Items.CheckBox_Music_1, 2)
  71. self.musicRadioManager:addItem(self.ui.Items.CheckBox_Music_2, 3)
  72. self.musicRadioManager:addItem(self.ui.Items.CheckBox_Music_3, 1)
  73. local defaultValue = tonumber(loadUserInfo(cacheMusic)) or 1
  74. self.musicRadioManager:setDefault(defaultValue)
  75. self:setYinColor(defaultValue)
  76. self.musicRadioManager:setCallback(function ( value )
  77. self:setYinColor(value)
  78. saveUserInfo(cacheMusic,value)
  79. --更换背景音乐
  80. ZPSound.PlayGameBGM(value)
  81. end)
  82. end
  83. local cacheColor = "cardColor"..(ZPDef.GameID or app.gameId)
  84. if self.colorRadioManager then
  85. self.colorRadioManager:addItem(self.ui.Items.CheckBox_Color_white, 1)
  86. self.colorRadioManager:addItem(self.ui.Items.CheckBox_Color_yellow, 2)
  87. local defaultValue = tonumber(loadUserInfo(cacheColor)) or 1
  88. self.colorRadioManager:setDefault(defaultValue)
  89. self:setCardColor(defaultValue)
  90. self.colorRadioManager:setCallback(function ( value )
  91. self:setCardColor(value)
  92. saveUserInfo(cacheColor,value)
  93. app:dispatchEvent({name = ZPDef.ZPEvent.ChangeViewType,colorType = value})
  94. end)
  95. end
  96. self:initDesktopEventListener()
  97. end
  98. function ErWuRoomSettingView:initDesktopEventListener()
  99. local function updateDeskTopType(viewType)
  100. if viewType == ZPDef.DesktopType.ThreeD then
  101. self.ui.Items.CheckBox_zm_bg_1:setVisible(true)
  102. self.ui.Items.CheckBox_zm_bg_2:setVisible(true)
  103. self.ui.Items.CheckBox_zm_bg_3:setVisible(true)
  104. self.ui.Items.CheckBox_zm_bg_4:setVisible(false)
  105. self.ui.Items.CheckBox_zm_bg_5:setVisible(false)
  106. self.ui.Items.CheckBox_zm_bg_6:setVisible(false)
  107. local cacheGameBgPic = "gameBgPicture"..(ZPDef.GameID or app.gameId)
  108. local defaultValue = tonumber(loadUserInfo(cacheGameBgPic)) or 2
  109. if defaultValue >= 4 then
  110. defaultValue = defaultValue - 3
  111. end
  112. if self.desktopRadioManager then
  113. self.desktopRadioManager:setDefault(defaultValue)
  114. end
  115. else
  116. self.ui.Items.CheckBox_zm_bg_1:setVisible(false)
  117. self.ui.Items.CheckBox_zm_bg_2:setVisible(false)
  118. self.ui.Items.CheckBox_zm_bg_3:setVisible(false)
  119. self.ui.Items.CheckBox_zm_bg_4:setVisible(true)
  120. self.ui.Items.CheckBox_zm_bg_5:setVisible(true)
  121. self.ui.Items.CheckBox_zm_bg_6:setVisible(true)
  122. local cacheGameBgPic = "gameBgPicture"..(ZPDef.GameID or app.gameId)
  123. local defaultValue = tonumber(loadUserInfo(cacheGameBgPic)) or 5
  124. if defaultValue <= 3 then
  125. defaultValue = defaultValue + 3
  126. end
  127. if self.desktopRadioManager then
  128. self.desktopRadioManager:setDefault(defaultValue)
  129. end
  130. end
  131. end
  132. local cacheGameViewType = "gameViewType"..(ZPDef.GameID or app.gameId)
  133. local defaultViewType = loadUserInfo(cacheGameViewType) or ZPDef.DesktopType.ThreeD
  134. if defaultViewType == "" then
  135. defaultViewType = ZPDef.DesktopType.ThreeD
  136. end
  137. updateDeskTopType(defaultViewType)
  138. if defaultViewType == ZPDef.DesktopType.ThreeD then
  139. self.ui.Items.CheckBox_3D:setSelectedState(true)
  140. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  141. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  142. self.ui.Items.CheckBox_2D:setSelectedState(false)
  143. else
  144. self.ui.Items.CheckBox_3D:setSelectedState(false)
  145. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  146. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  147. self.ui.Items.CheckBox_2D:setSelectedState(true)
  148. end
  149. --2D
  150. local function listener2D()
  151. playBtnEffect();
  152. if self.isFobidChangeDesktop then
  153. showTooltip("操作太频繁,请稍候再试!")
  154. self.ui.Items.CheckBox_2D:setSelectedState(false)
  155. return
  156. end
  157. self.ui.Items.CheckBox_3D:setSelectedState(false)
  158. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  159. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  160. self.ui.Items.CheckBox_2D:setSelectedState(true)
  161. --app.systemSetting.info.viewType=ZPDef.DesktopType.TwoD
  162. --app.systemSetting:save()
  163. local cacheGameViewType = "gameViewType"..(ZPDef.GameID or app.gameId)
  164. saveUserInfo(cacheGameViewType,ZPDef.DesktopType.TwoD)
  165. app:dispatchEvent({name = ZPDef.ZPEvent.ChangeViewType,desktopType = ZPDef.DesktopType.TwoD})
  166. updateDeskTopType(ZPDef.DesktopType.TwoD)
  167. self.isFobidChangeDesktop = true
  168. self:runDelay(1.0, function ()
  169. self.isFobidChangeDesktop = false
  170. end)
  171. end
  172. self.ui.Items.CheckBox_2D:addEventListener(listener2D)
  173. --3D
  174. local function listener3D()
  175. playBtnEffect();
  176. if self.isFobidChangeDesktop then
  177. showTooltip("操作太频繁,请稍候再试!")
  178. self.ui.Items.CheckBox_3D:setSelectedState(false)
  179. return
  180. end
  181. self.ui.Items.CheckBox_3D:setSelectedState(true)
  182. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  183. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  184. self.ui.Items.CheckBox_2D:setSelectedState(false)
  185. --app.systemSetting.info.viewType=ZPDef.DesktopType.ThreeD
  186. --app.systemSetting:save()
  187. local cacheGameViewType = "gameViewType"..(ZPDef.GameID or app.gameId)
  188. saveUserInfo(cacheGameViewType,ZPDef.DesktopType.ThreeD)
  189. app:dispatchEvent({name = ZPDef.ZPEvent.ChangeViewType,desktopType = ZPDef.DesktopType.ThreeD})
  190. updateDeskTopType(ZPDef.DesktopType.ThreeD)
  191. self.isFobidChangeDesktop = true
  192. self:runDelay(1.0, function ()
  193. self.isFobidChangeDesktop = false
  194. end)
  195. end
  196. self.ui.Items.CheckBox_3D:addEventListener(listener3D)
  197. end
  198. -- 关闭
  199. function ErWuRoomSettingView:onClickClose()
  200. playBtnEffect()
  201. self:removeFromParent()
  202. end
  203. -- 音乐
  204. function ErWuRoomSettingView:onClickYinYue()
  205. app.systemSetting.info.music = self.ui.Items.CheckBox_Music:getSelectedState();
  206. app.systemSetting:save()
  207. end
  208. -- 音效
  209. function ErWuRoomSettingView:onClickYinXiao()
  210. app.systemSetting.info.sound = self.ui.Items.CheckBox_Effect:getSelectedState();
  211. app.systemSetting:save()
  212. app:dispatchEvent({name = "onChangeYinXiao"});
  213. end
  214. --[[--选择桌布背景
  215. function ZPRoomSettingView:selectBgCallBack(idx)
  216. saveUserInfo("srxgameBgPicture",idx)
  217. self.ui.Items.ImageView_bg_select:setPosition(self.bgBtnList[idx]:getPosition())
  218. --更换牌背
  219. app:dispatchEvent({name = "onChangeTable", idx = idx});
  220. end--]]
  221. -- 音乐音量设置回调
  222. function ErWuRoomSettingView:onMusicVolumeClickSlider()
  223. local percent = self.ui.Items.SliderMusic:getPercent();
  224. local curValue = percent / 100;
  225. app.systemSetting.info.musicVolume = curValue;
  226. app.systemSetting:save()
  227. end
  228. -- 音效音量设置回调
  229. function ErWuRoomSettingView:onSoundVolumeClickSlider()
  230. local percent = self.ui.Items.SliderEffect:getPercent();
  231. local curValue = percent / 100;
  232. app.systemSetting.info.soundVolume = curValue;
  233. app.systemSetting:save()
  234. end
  235. --选择语言时,字体变颜色
  236. function ErWuRoomSettingView:setYuColor(ttype)
  237. self.ui.Items.Text_putonghua:setColor(ttype == 1 and CheckBox_Sel_Color or CheckBox_Nor_Color)--普通话
  238. self.ui.Items.Text_ChenZhou:setColor(ttype == 2 and CheckBox_Sel_Color or CheckBox_Nor_Color)--方言话
  239. end
  240. --选择桌布时,字体变颜色
  241. function ErWuRoomSettingView:setZhuoColor(ttype)
  242. self.ui.Items.Text_zm_bg_1:setColor(ttype == 1 and CheckBox_Sel_Color or CheckBox_Nor_Color)--颜色1
  243. self.ui.Items.Text_zm_bg_2:setColor(ttype == 2 and CheckBox_Sel_Color or CheckBox_Nor_Color)--颜色2
  244. self.ui.Items.Text_zm_bg_3:setColor(ttype == 3 and CheckBox_Sel_Color or CheckBox_Nor_Color)--颜色3
  245. self.ui.Items.Text_zm_bg_4:setColor(ttype == 4 and CheckBox_Sel_Color or CheckBox_Nor_Color)--颜色4
  246. self.ui.Items.Text_zm_bg_5:setColor(ttype == 5 and CheckBox_Sel_Color or CheckBox_Nor_Color)--颜色4
  247. self.ui.Items.Text_zm_bg_6:setColor(ttype == 6 and CheckBox_Sel_Color or CheckBox_Nor_Color)--颜色4
  248. end
  249. --选择背景音乐时,字体变颜色
  250. function ErWuRoomSettingView:setYinColor(ttype)
  251. self.ui.Items.Text_Music_1:setColor(ttype == 2 and CheckBox_Sel_Color or CheckBox_Nor_Color)--普通话
  252. self.ui.Items.Text_Music_2:setColor(ttype == 3 and CheckBox_Sel_Color or CheckBox_Nor_Color)--长沙话
  253. self.ui.Items.Text_Music_3:setColor(ttype == 1 and CheckBox_Sel_Color or CheckBox_Nor_Color)--长沙话
  254. end
  255. --选择牌面颜色是,字体变颜色
  256. function ErWuRoomSettingView:setCardColor(ttype)
  257. self.ui.Items.Text_color_1:setColor(ttype == 1 and CheckBox_Sel_Color or CheckBox_Nor_Color)--纯白色
  258. self.ui.Items.Text_color_2:setColor(ttype == 2 and CheckBox_Sel_Color or CheckBox_Nor_Color)--萤黄色
  259. end
  260. return ErWuRoomSettingView;