UI_Settings.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import { _decorator, Button, Component, director, Node, Sprite } 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. import { UI_Tips } from '../UI_Tips/UI_Tips';
  13. import ch_audio from '../../../ch/audio/audio';
  14. import { Hall } from '../../hall/Hall';
  15. const { ccclass, property } = _decorator;
  16. @ccclass('UI_Settings')
  17. export class UI_Settings extends ui_base {
  18. constructor() {
  19. super(ModuleDef.GAME, 'ui/UI_Settings/Settings', GameUILayers.HUD, Layout_Settings);
  20. }
  21. protected async onCreated() {
  22. const layout = this.getLayout<Layout_Settings>();
  23. if (director.getScene().name == 'hall') {
  24. layout.Defeat_Btn.node.active = false;
  25. layout.Replay_Btn.node.active = false;
  26. layout.Question_Btn.node.active =ch.sdk.createFeedbackButton(ch.util.getBtnOp(layout.Question_Btn.node));
  27. } else if (director.getScene().name == 'game') {
  28. layout.Defeat_Btn.node.active = true;
  29. layout.Question_Btn.node.active = false;
  30. if(Hall.getInstance().player.get_life()>=1){
  31. layout.Replay_Btn.node.active = true;
  32. layout.Replay_Btn.interactable = true;
  33. layout.Replay_Btn.node.getComponent(Sprite).grayscale = false;
  34. }else{
  35. layout.Replay_Btn.interactable = false;
  36. layout.Replay_Btn.node.getComponent(Sprite).grayscale = true;
  37. }
  38. }
  39. ani_ui(layout.Close_Btn.node.parent);
  40. this.onButtonEvent(layout.Close_Btn, async (button: any) => {
  41. ch_audio.getInstance().playOneShot('sound/click_Btn');
  42. ch.sdk.destoryFeedbackButton();
  43. //关闭设置界面
  44. gui.close(UI_Settings);
  45. if (director.getScene().name == 'game') {
  46. gui.get(UI_Main).evt.emit(gui.get(UI_Main).evt.key.resume);
  47. }
  48. }, this);
  49. layout.Toggle_Music.isChecked = ch.audio.volumeMusic != 0;
  50. layout.Toggle_Sound.isChecked = ch.audio.switchEffect;
  51. this.onToggleEvent(layout.Toggle_Music, async (toggle: any) => {
  52. ch.audio.volumeMusic = toggle.isChecked?1:0;
  53. ch.audio.save();
  54. // button_sound();
  55. }, this);
  56. this.onToggleEvent(layout.Toggle_Sound, async (toggle: any) => {
  57. ch.audio.switchEffect = toggle.isChecked;
  58. ch.audio.save();
  59. // button_sound();
  60. }, this);
  61. this.onButtonEvent(layout.Defeat_Btn, async (button: any) => {
  62. ch_audio.getInstance().playOneShot('sound/click_Btn');
  63. await gui.show(UI_Tips);
  64. gui.get(UI_Tips).init(true);
  65. }, this);
  66. this.onButtonEvent(layout.Replay_Btn, async (button: any) => {
  67. ch_audio.getInstance().playOneShot('sound/click_Btn');
  68. await gui.show(UI_Tips);
  69. gui.get(UI_Tips).init(false);
  70. }, this);
  71. }
  72. }