SettingViewComp.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * @Author: mojunshou 1637302775@qq.com
  3. * @Date: 2025-03-20 15:40:20
  4. * @LastEditors: mojunshou 1637302775@qq.com
  5. * @LastEditTime: 2025-03-25 15:18:55
  6. * @Description:设置界面
  7. */
  8. import { _decorator } from "cc";
  9. import { oops } from "db://oops-framework/core/Oops";
  10. import { ecs } from "db://oops-framework/libs/ecs/ECS";
  11. import { CCComp } from "db://oops-framework/module/common/CCComp";
  12. import { UIID } from "../config/GameUIConfig";
  13. import { CCVMParentComp } from "db://oops-framework/module/common/CCVMParentComp";
  14. import { Toggle } from "cc";
  15. const { ccclass, property } = _decorator;
  16. /** 视图层对象 */
  17. @ccclass('SettingViewComp')
  18. @ecs.register('SettingView', false)
  19. export class SettingViewComp extends CCVMParentComp {
  20. data: any = {
  21. nickName: "金砖大王",
  22. uid: "1234567890",
  23. music_state: true,
  24. effect_state: true
  25. }
  26. /** 视图层逻辑代码分离演示 */
  27. start() {
  28. // const entity = this.ent as ecs.Entity; // ecs.Entity 可转为当前模块的具体实体对象
  29. this.setButton();
  30. }
  31. /** 视图对象通过 ecs.Entity.remove(SettingViewComp) 删除组件是触发组件处理自定义释放逻辑 */
  32. reset() {
  33. this.node.destroy();
  34. }
  35. private btn_about() {
  36. oops.gui.open(UIID.AboutUs);
  37. }
  38. private btn_close() {
  39. oops.gui.remove(UIID.Setting);
  40. }
  41. private btn_cache() {
  42. oops.gui.toast("清理成功");
  43. }
  44. /**
  45. * @description: 设置音乐开关
  46. * @param {Toggle} toggle
  47. * @return {*}
  48. */
  49. private onMusicToggleContainerClick(toggle: Toggle) {
  50. switch (toggle.node.name) {
  51. case "On":
  52. this.data.music_state = true;
  53. break;
  54. case "Off":
  55. this.data.music_state = false;
  56. break;
  57. }
  58. console.log("音乐状态", this.data.music_state);
  59. oops.audio.switchMusic = this.data.music_state;
  60. }
  61. /**
  62. * @description: 设置音乐开关
  63. * @param {Toggle} toggle
  64. * @return {*}
  65. */
  66. private onEffectToggleContainerClick(toggle: Toggle) {
  67. switch (toggle.node.name) {
  68. case "On":
  69. this.data.effect_state = true;
  70. break;
  71. case "Off":
  72. this.data.effect_state = false;
  73. break;
  74. }
  75. console.log("音效状态", this.data.effect_state);
  76. oops.audio.switchEffect = this.data.effect_state;
  77. }
  78. }