UI_Settings.ts 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { _decorator, Component, director, Node, Vec3 } from 'cc';
  2. import ui_base from '../../../core/ui/ui_base';
  3. import { ModuleDef } from '../../../scripts/ModuleDef';
  4. import { GameUILayers } from '../../../core/ui/ui';
  5. import { Layout_Settings } from './Layout_Settings';
  6. import { UIManager } from '../UI/UIManager';
  7. import { Root } from '../../game/process/Root';
  8. import { ch } from '../../../ch/ch';
  9. import { button_Sound, SoundName } from '../../../module_extra/Customize/Customize_Sound';
  10. import { ani_ui, toggleMoveTo } from '../../../module_extra/Customize/Customize_Ani';
  11. import { UIName } from '../UI/UI_ClassManager';
  12. const { ccclass, property } = _decorator;
  13. @ccclass('UI_Settings')
  14. export class UI_Settings extends ui_base {
  15. private offset: Vec3[] = [new Vec3(-75, 0, 0), new Vec3(75, 0, 0)];
  16. constructor() {
  17. super(ModuleDef.GAME, 'ui/UI_Settings/Settings', GameUILayers.OVERLAY, Layout_Settings);
  18. }
  19. protected onCreated() {
  20. const layout = this.getLayout<Layout_Settings>();
  21. this.showPanel();
  22. this.onButtonEvent(layout.Close_Btn, () => {
  23. button_Sound(SoundName.clickUI);
  24. ch.sdk.destoryFeedbackButton();
  25. UIManager.getInstance().PopUI();
  26. });
  27. this.onButtonEvent(layout.Return_Btn, async () => {
  28. UIManager.getInstance().DestoryAllUI();
  29. UIManager.getInstance().pushUI(UIName.HALL);
  30. });
  31. layout.Music_Toggle.isChecked = ch.audio.volumeMusic != 0;
  32. layout.Sound_Toggle.isChecked = ch.audio.switchEffect;
  33. layout.Vibrate_Toggle.isChecked = Root.getInstance().Vibrate;
  34. toggleMoveTo(layout.Music_Toggle.node.getChildByName('Sprite'), this.offset[ch.audio.volumeMusic], 0);
  35. toggleMoveTo(layout.Sound_Toggle.node.getChildByName('Sprite'), this.offset[ch.audio.switchEffect ? 1 : 0], 0);
  36. toggleMoveTo(layout.Vibrate_Toggle.node.getChildByName('Sprite'), this.offset[Root.getInstance().Vibrate ? 1 : 0], 0);
  37. this.onToggleEvent(layout.Music_Toggle, (toggle) => {
  38. button_Sound(SoundName.clickUI);
  39. ch.audio.volumeMusic = layout.Music_Toggle.isChecked ? 1 : 0;
  40. toggleMoveTo(layout.Music_Toggle.node.getChildByName('Sprite'), this.offset[ch.audio.volumeMusic], 0.1);
  41. ch.audio.save();
  42. });
  43. this.onToggleEvent(layout.Sound_Toggle, (toggle) => {
  44. button_Sound(SoundName.clickUI);
  45. ch.audio.switchEffect = layout.Sound_Toggle.isChecked;
  46. toggleMoveTo(layout.Sound_Toggle.node.getChildByName('Sprite'), this.offset[ch.audio.switchEffect ? 1 : 0], 0.1);
  47. ch.audio.save();
  48. });
  49. this.onToggleEvent(layout.Vibrate_Toggle, (toggle) => {
  50. button_Sound(SoundName.clickUI);
  51. Root.getInstance().Vibrate = layout.Vibrate_Toggle.isChecked;
  52. toggleMoveTo(layout.Vibrate_Toggle.node.getChildByName('Sprite'), this.offset[Root.getInstance().Vibrate ? 1 : 0], 0.1);
  53. });
  54. }
  55. public showPanel(): void {
  56. super.showPanel();
  57. const layout = this.getLayout<Layout_Settings>();
  58. ani_ui(layout.Close_Btn.node.parent);
  59. //区分场景
  60. if (UIManager.getInstance().getDownUIName() === UIName.HALL) {
  61. layout.Return_Btn.node.active = false;
  62. layout.Restart_Btn.node.active = false;
  63. layout.Question_Btn.node.active = ch.sdk.createFeedbackButton(ch.util.getBtnOp(layout.Question_Btn.node));
  64. }
  65. else if (UIManager.getInstance().getDownUIName() === UIName.MAIN) {
  66. layout.Return_Btn.node.active = true;
  67. layout.Restart_Btn.node.active = true;
  68. layout.Question_Btn.node.active = false;
  69. }
  70. }
  71. public new_close(): void {
  72. super.new_close();
  73. }
  74. }