GameControl.ts 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /** @format */
  2. import {AudioManager} from './mgrs/AudioManager'
  3. import {EventManager} from './mgrs/EventManager'
  4. import {LocalStorageManager} from './mgrs/LocalStorageManager'
  5. import {PlatformManager} from './mgrs/PlatformManager'
  6. import {PrefabPoolManager} from './mgrs/PrefabPoolManager'
  7. import {ResourceManager} from './mgrs/ResourceManager'
  8. import {UIManager} from './mgrs/UIManager'
  9. import {NetManager} from './mgrs/NetManager'
  10. import {Log} from './utils/LogUtils'
  11. import {HttpManager} from './mgrs/HttpManager'
  12. import {GameData} from './data/GameData'
  13. import {MainData} from './data/MainData'
  14. import {UserData} from './data/UserData'
  15. import {I18nManager} from './mgrs/I18nManager'
  16. import {GoodsManager} from './mgrs/GoodsManager'
  17. import {DIS_ID, Language} from './enums/Enum'
  18. import {TimeManager} from './mgrs/TimeManager'
  19. import {GlobalManager} from './mgrs/GlobalManager'
  20. import {DataConfig} from './config/DataConfig'
  21. import {GameManager} from './mgrs/GameManager'
  22. export const Data = {
  23. game: new GameData(),
  24. main: new MainData(),
  25. user: new UserData(),
  26. init() {
  27. Data.game.init()
  28. Data.main.init()
  29. Data.user.init()
  30. },
  31. reset() {
  32. Data.user.reset()
  33. Data.main.reset()
  34. },
  35. }
  36. export const Mgr = {
  37. audio: new AudioManager(), // 音频管理器
  38. event: new EventManager(), // 事件管理器
  39. storage: new LocalStorageManager(), // 本地存储管理器
  40. platform: new PlatformManager(), // 平台管理器
  41. pool: new PrefabPoolManager(), // 节点池管理器
  42. res: new ResourceManager(), // 资源管理器
  43. ui: new UIManager(), // UI管理器
  44. net: new NetManager(), // Net管理器
  45. http: new HttpManager(), // HTTP管理器
  46. i18n: new I18nManager(), // 多语言管理器
  47. goods: new GoodsManager(), // 道具管理器
  48. time: new TimeManager(), // 时间管理器
  49. global: new GlobalManager(), // 全局管理器
  50. game: new GameManager(), // 战斗管理器
  51. async init() {
  52. cc.director.getCollisionManager().enabled = true
  53. // cc.director.getCollisionManager().enabledDebugDraw = true
  54. let isInit: boolean = true
  55. Mgr.platform.init()
  56. Mgr.net.init()
  57. isInit =
  58. isInit &&
  59. (await Mgr.audio.init()) &&
  60. (await Mgr.ui.init()) &&
  61. (await Mgr.i18n.init(DataConfig[DIS_ID.language].data1))
  62. if (!isInit) Log.warn('GameControl 框架初始化失败')
  63. return isInit
  64. },
  65. reset() {
  66. Mgr.event.reset()
  67. Mgr.ui.closeAll()
  68. Mgr.time.reset()
  69. Mgr.goods.reset()
  70. Mgr.net.reset()
  71. Mgr.global.reset()
  72. },
  73. }
  74. export class GameControl {
  75. public static async init() {
  76. Data.init()
  77. return await Mgr.init()
  78. }
  79. public static resetGame() {
  80. Mgr.net.stopReConnect()
  81. Data.reset()
  82. Mgr.reset()
  83. cc.director.loadScene('Main')
  84. }
  85. }
  86. CC_DEV && window && (window['Mgr'] = Mgr)
  87. CC_DEV && window && (window['Data'] = Data)