local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local MJSound = MJFramework.MJImport("mj.luaScript.MJSound") local MJFunction = MJFramework.MJImport("mj.luaScript.MJFunction") local MJRoomSettingView=MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomSettingView") local yibinmajiangRoomSettingView = class("yibinmajiangRoomSettingView", MJRoomSettingView); function yibinmajiangRoomSettingView:ctor () yibinmajiangRoomSettingView.super.ctor(self); end function yibinmajiangRoomSettingView:loadUI () local ui = loadUI("mj_yibinmajiang/res/ui_fangjian/mj_yibinmajiang_setting_view.ui") self.ui = ui self:addChild(ui) end function yibinmajiangRoomSettingView:initButton( ) self:initLanguageRadioManager(); self:initMahjongColorRadioManager(); self:initDesktopRadioManager(); self:initDesktopEventListener(); self:initEmojiAndVoice(); self:initBGMRadioManager(); -- 关闭 self.ui.Items.Button_Close:registerClick(handler(self , self.onClickClose)); -- 音乐 self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickMusic)) self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music); -- 音乐音量 self.ui.Items.Slider_Music:setPercent(app.systemSetting.info.musicVolume * 100 or 100) self.ui.Items.Slider_Music:addEventListener(handler(self, self.onMusicVolumeClickSlider)) -- 音效 self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickEffect)) self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound); -- 音效音量 self.ui.Items.Slider_Effect:setPercent(app.systemSetting.info.soundVolume * 100 or 100) self.ui.Items.Slider_Effect:addEventListener(handler(self, self.onSoundVolumeClickSlider)) end function yibinmajiangRoomSettingView:initLanguageRadioManager() self.languageRadioManager = import("luaScript.Tools.RadioManager"):new() self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, 1) self.languageRadioManager:addItem(self.ui.Items.CheckBox_FangYan, 2) local cacheName = "mj_language"..(MJDefine.GameID or app.gameId); local defaultValue = tonumber(loadUserInfo(cacheName)) or 2 -- self:setYuColor(defaultValue) self.languageRadioManager:setDefault(defaultValue) self.languageRadioManager:setCallback(function ( value ) playBtnEffect(); saveUserInfo(cacheName, value) -- self:setYuColor(value) MJSound.setSoundType(value); end) -- 隐藏语言选项 self.ui.Items.Layout_Language:setVisible(false) self.ui.Items.ImageView_line_1:setVisible(false) end --[[ 修改麻将颜色 ]] function yibinmajiangRoomSettingView:initMahjongColorRadioManager( ) local color = loadUserInfo("mj_desktop_2d_mjType") or MJDefine.DesktopType.TwoD if color == "" then color = MJDefine.DesktopType.TwoD end self.colorRadioManager = import("luaScript.Tools.RadioManager"):new(); -- self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_3d, MJDefine.DesktopType.ThreeD) self.colorRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ, MJDefine.DesktopType.TwoD) self.colorRadioManager:addItem(self.ui.Items.CheckBox_2D_MJ_Gold, MJDefine.DesktopType.TwoDGold) self.colorRadioManager:setDefault(color) self.colorRadioManager:setCallback(function ( value ) playBtnEffect(); saveUserInfo("mj_desktop_2d_mjType", value) -- 这里要加是否是3d的判断,因为当点击了3d之后,还会触发一次麻将颜色的点击,但是里面没有3d,所以value值会是2d -- 所以判断当前类型是否是3d即可,是3d的话,就不需要改变了 if app.systemSetting.info.viewType ~= '3d' then app.systemSetting.info.viewType = value app.systemSetting:save() end app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType, desktopType = value}) -- showTooltip("设置将在下一局生效!") end) end function yibinmajiangRoomSettingView:initDesktopRadioManager() self.bgmRadioManager = import("luaScript.Tools.RadioManager"):new(); self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_1, 1) self.bgmRadioManager:addItem(self.ui.Items.CheckBox_BGM_2, 2) local defaultValue = tonumber(loadUserInfo("yibinmajiang_bgm")) or 1 self.bgmRadioManager:setDefault(defaultValue) self.bgmRadioManager:setCallback(function ( value ) playBtnEffect(); saveUserInfo("yibinmajiang_bgm", value) MJSound.PlayGameBGM(value); end) -- 隐藏选择背景音乐按钮 self.ui.Items.Layout_BGM:setVisible(false) self.ui.Items.ImageView_line_4:setVisible(false) end function yibinmajiangRoomSettingView:initDesktopEventListener() local function updateColorText () if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then self.ui.Items.Text_24:setText("墨绿") self.ui.Items.Text_17:setText("绿色") self.ui.Items.Text_25:setText("经典") self.ui.Items.CheckBox_desktop_1:setVisible(false) self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(256, 23)) self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(127, 23)) self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(350, 23)) local defaultValue = tonumber(loadUserInfo("yibinmajiang_desktop_background")) or 1 if defaultValue == 1 then defaultValue = 2 end if self.desktopRadioManager then self.desktopRadioManager:setDefault(defaultValue) end else self.ui.Items.Text_24:setText("绿色") self.ui.Items.Text_17:setText("棕色") self.ui.Items.Text_25:setText("蓝色") self.ui.Items.CheckBox_desktop_1:setVisible(true) self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(256, 23)) self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(127, 23)) self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(385, 23)) end end if app.systemSetting.info.viewType == MJDefine.DesktopType.ThreeD then self.ui.Items.CheckBox_3D:setSelectedState(true) self.ui.Items.CheckBox_3D:setTouchEnabled(false) self.ui.Items.CheckBox_2D:setTouchEnabled(true) self.ui.Items.CheckBox_2D:setSelectedState(false) self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(false) else self.ui.Items.CheckBox_3D:setSelectedState(false) self.ui.Items.CheckBox_3D:setTouchEnabled(true) self.ui.Items.CheckBox_2D:setTouchEnabled(false) self.ui.Items.CheckBox_2D:setSelectedState(true) self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(true) end updateColorText() --2D local function listener2D() playBtnEffect(); if self.isFobidChangeDesktop then showTooltip("操作太频繁,请稍候再试!") self.ui.Items.CheckBox_2D:setSelectedState(false) return end self.ui.Items.CheckBox_3D:setSelectedState(false) self.ui.Items.CheckBox_3D:setTouchEnabled(true) self.ui.Items.CheckBox_2D:setTouchEnabled(false) self.ui.Items.CheckBox_2D:setSelectedState(true) app.systemSetting.info.viewType=MJDefine.DesktopType.TwoD app.systemSetting:save() app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.TwoD}) -- showTooltip("设置将在下一局生效!") -- saveUserInfo("mj_desktop_2d_mjType", MJDefine.DesktopType.TwoD) --2d可以选择麻将颜色 self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(true) if self.colorRadioManager then self.colorRadioManager:setDefault(MJDefine.DesktopType.TwoD) end self.isFobidChangeDesktop = true self:runDelay(1.0, function () self.isFobidChangeDesktop = false end) updateColorText() end self.ui.Items.CheckBox_2D:addEventListener(listener2D) --3D local function listener3D() playBtnEffect(); if self.isFobidChangeDesktop then showTooltip("操作太频繁,请稍候再试!") self.ui.Items.CheckBox_3D:setSelectedState(false) return end self.ui.Items.CheckBox_3D:setSelectedState(true) self.ui.Items.CheckBox_3D:setTouchEnabled(false) self.ui.Items.CheckBox_2D:setTouchEnabled(true) self.ui.Items.CheckBox_2D:setSelectedState(false) app.systemSetting.info.viewType=MJDefine.DesktopType.ThreeD app.systemSetting:save() app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.ThreeD}) -- showTooltip("设置将在下一局生效!") --3d麻将颜色只能为墨绿 self.ui.Items.CheckBox_2D_MJ_Gold:setVisible(false) -- saveUserInfo("mj_desktop_2d_mjType", MJDefine.DesktopType.ThreeD) if self.colorRadioManager then self.colorRadioManager:setDefault(MJDefine.DesktopType.ThreeD) end self.isFobidChangeDesktop = true self:runDelay(1.0, function () self.isFobidChangeDesktop = false end) updateColorText() end self.ui.Items.CheckBox_3D:addEventListener(listener3D) end function yibinmajiangRoomSettingView:initEmojiAndVoice( ) --互动表情 local faceKG = tonumber(loadUserInfo("propEnable")) or 1--0关 1开 self.ui.Items.Layout_Prop_Off:setVisible(faceKG==0) self.ui.Items.Layout_Prop_On:setVisible(faceKG==1) self.ui.Items.Layout_Prop_Off:registerClick(handler(self , self.setHuDongBiaoQingClose)) self.ui.Items.Layout_Prop_On:registerClick(handler(self , self.setHuDongBiaoQingOpen)) --屏蔽语音 local voiceKG = tonumber(loadUserInfo("voiceEnable")) or 1--0关 1开 self.ui.Items.Layout_Voice_Off:setVisible(voiceKG==0) self.ui.Items.Layout_Voice_On:setVisible(voiceKG==1) self.ui.Items.Layout_Voice_Off:registerClick(handler(self , self.setPingBiYuYinClose)) self.ui.Items.Layout_Voice_On:registerClick(handler(self , self.setPingBiYuYinOpen)) self.ui.Items.Layout_Prop:setVisible(not MJFunction.isPropFobided()) self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided()) end function yibinmajiangRoomSettingView:initBGMRadioManager( ) self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new(); self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_1, 1) self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_2, 2) self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_3, 3) local defaultValue = tonumber(loadUserInfo("yibinmajiang_desktop_background")) or 2 self.desktopRadioManager:setDefault(defaultValue) self.desktopRadioManager:setCallback(function ( value ) playBtnEffect(); saveUserInfo("yibinmajiang_desktop_background", value) app:dispatchEvent({name = MJDefine.MJEvent.ChangeTableBg}) --showTooltip("设置将在下一局生效!") end) end function yibinmajiangRoomSettingView:onClickClose () yibinmajiangRoomSettingView.super.onClickClose(self); end -- 音乐 function yibinmajiangRoomSettingView:onClickMusic() app.systemSetting.info.music = not app.systemSetting.info.music app.systemSetting:save() playBtnEffect(); end -- 音效 function yibinmajiangRoomSettingView:onClickEffect() app.systemSetting.info.sound = not app.systemSetting.info.sound app.systemSetting:save() playBtnEffect(); end -- 音乐音量设置回调 function yibinmajiangRoomSettingView:onMusicVolumeClickSlider() local percent = self.ui.Items.Slider_Music:getPercent(); local curValue = percent / 100; app.systemSetting.info.musicVolume = curValue; app.systemSetting:save() end -- 音效音量设置回调 function yibinmajiangRoomSettingView:onSoundVolumeClickSlider() local percent = self.ui.Items.Slider_Effect:getPercent(); local curValue = percent / 100; app.systemSetting.info.soundVolume = curValue; app.systemSetting:save() end --互动表情开 function yibinmajiangRoomSettingView:setHuDongBiaoQingOpen() playBtnEffect(); self.ui.Items.Layout_Prop_Off:setVisible(true) self.ui.Items.Layout_Prop_On:setVisible(false) saveUserInfo("propEnable",0) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end --互动表情关 function yibinmajiangRoomSettingView:setHuDongBiaoQingClose() playBtnEffect(); self.ui.Items.Layout_Prop_Off:setVisible(false) self.ui.Items.Layout_Prop_On:setVisible(true) saveUserInfo("propEnable",1) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end --屏蔽语音开 function yibinmajiangRoomSettingView:setPingBiYuYinOpen() playBtnEffect(); self.ui.Items.Layout_Voice_Off:setVisible(true) self.ui.Items.Layout_Voice_On:setVisible(false) saveUserInfo("voiceEnable",0) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end --屏蔽语音关 function yibinmajiangRoomSettingView:setPingBiYuYinClose() playBtnEffect(); self.ui.Items.Layout_Voice_Off:setVisible(false) self.ui.Items.Layout_Voice_On:setVisible(true) saveUserInfo("voiceEnable",1) app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable}) end return yibinmajiangRoomSettingView;