UI_Settings.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { _decorator, Button, Component, director, Node } from 'cc';
  2. import { Layout_Settings } from './Layout_Settings';
  3. import { ani_ui, UI_Main } from '../UI_Main/UI_Main';
  4. import { UI_Hall } from '../UI_Hall/UI_Hall';
  5. import { ch } from '../../../ch/ch';
  6. import { GameUILayers, gui } from '../../../core/ui/ui';
  7. import ui_base from '../../../core/ui/ui_base';
  8. import { ResUtil } from '../../../core/util/ResUtil';
  9. import { ModuleDef } from '../../../Scripts/ModuleDef';
  10. import { SceneDef } from '../../../Scripts/SceneDef';
  11. import { Layout_Main } from '../UI_Main/Layout_Main';
  12. const { ccclass, property } = _decorator;
  13. @ccclass('UI_Settings')
  14. export class UI_Settings extends ui_base {
  15. constructor() {
  16. super(ModuleDef.GAME, 'ui/UI_Settings/Settings', GameUILayers.HUD, Layout_Settings);
  17. }
  18. protected async onCreated() {
  19. const layout = this.getLayout<Layout_Settings>();
  20. ani_ui(layout.Close_Btn.node.parent);
  21. if(director.getScene().name == 'hall'){
  22. layout.Defeat_Btn.node.active = false;
  23. }
  24. this.onButtonEvent(layout.Close_Btn, async (button: any) => {
  25. //关闭设置界面
  26. gui.close(UI_Settings);
  27. if(director.getScene().name == 'main')
  28. {
  29. gui.get(UI_Main).evt.emit(gui.get(UI_Main).evt.key.resume);
  30. }
  31. }, this);
  32. layout.Toggle_Music.isChecked = ch.audio.volumeMusic != 0;
  33. layout.Toggle_Sound.isChecked = ch.audio.switchEffect;
  34. this.onToggleEvent(layout.Toggle_Music, async (toggle: any) => {
  35. ch.audio.volumeMusic = toggle.isChecked;
  36. ch.audio.save();
  37. // button_sound();
  38. }, this);
  39. this.onToggleEvent(layout.Toggle_Sound, async (toggle: any) => {
  40. ch.audio.switchEffect = toggle.isChecked;
  41. ch.audio.save();
  42. // button_sound();
  43. }, this);
  44. this.onButtonEvent(layout.Defeat_Btn, async (button: any) => {
  45. await gui.closeAll();
  46. gui.show(UI_Hall);
  47. ResUtil.loadScene(SceneDef.Hall, ModuleDef.GAME, true);
  48. }, this);
  49. this.onButtonEvent(layout.Replay_Btn, (button: any) => {
  50. gui.get(UI_Main).evt.emit(gui.get(UI_Main).evt.key.next_level);
  51. gui.close(UI_Settings);
  52. gui.get(UI_Main).getLayout<Layout_Main>().Container.level_idioms();
  53. gui.get(UI_Main).evt.emit(gui.get(UI_Main).evt.key.update_ui_idioms);
  54. gui.get(UI_Main).evt.emit(gui.get(UI_Main).evt.key.update_remain);
  55. }, this);
  56. }
  57. }