源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

179 行
5.3 KiB

  1. require("utils.EngineClass")
  2. require("systool.RequireSystool")
  3. require("game.common.LuaMemManager")
  4. LuaMemManager.New()
  5. local require = require
  6. GameModule = GameModule or {}
  7. local GameModule = GameModule
  8. local Time = Time
  9. function GameModule.Main()
  10. QualitySettings.streamingMipmapsActive = false
  11. -- 测试
  12. -- if ApplicationPlatform == RuntimePlatform.Android or tostring(ApplicationPlatform) == tostring(RuntimePlatform.Android) then
  13. -- QualitySettings.streamingMipmapsActive = true
  14. -- QualitySettings.streamingMipmapsMemoryBudget = 2048
  15. -- QualitySettings.streamingMipmapsMaxLevelReduction = 1
  16. -- QualitySettings.streamingMipmapsAddAllCameras = true
  17. -- end
  18. GlobalUserOperateTime = 0
  19. --输出 assetbundle 包更新下载加载卸载日志
  20. --AppConst.OpenDownloadLog = true
  21. OpenGameDebugLog = AppConst.OpenDownloadLog
  22. require("clientconfig.ClientConfig")
  23. require("config.Config")
  24. require("utils.RequireUtils")
  25. require("game.common.RequireCommon")
  26. require("sysinfo.SysInfoCtrl")
  27. require("newgameui.RequireGameUI")
  28. require("language.RequireLanguage")
  29. require("game.login.LoginController")
  30. require("game.common.OpenFun")
  31. require("game.common.StepPackModule")
  32. require("utils.LuaFPS")
  33. require("game.login.PreLoadBeforeLogin")
  34. require("game.login.LoginBg")
  35. math.randomseed(tostring(os.time()):reverse():sub(1, 6))
  36. GameError.New()
  37. SystemRuntimePlatform.Init()
  38. -- if SystemRuntimePlatform.IsAndroid() then
  39. -- G_DEBUG_MODE = true
  40. -- end
  41. SystemMemoryLevel.Init()
  42. SetGameFrameRate()
  43. InitResLoadSpeed()
  44. InitEngineData()
  45. GlobalTimerQuest = TimerQuest.New()
  46. GameConfigUtil.Load()
  47. GamePlatformRes.Load()
  48. ShaderTools.Load()
  49. GlobalEventSystem = EventSystem.New()
  50. Runner:getInstance():AddRunObj(GlobalEventSystem, 3)
  51. GameModule.runner = Runner:getInstance()
  52. lua_resM = LuaResManager:getInstance()
  53. lua_logM = LuaLogManager:getInstance()
  54. lua_viewM = LuaViewManager:getInstance()
  55. LuaMemManager:getInstance():InitInfo()
  56. CookieWrapper.New()
  57. lua_soundM = LuaSoundManager:getInstance()
  58. lua_soundM:LoadSetting()
  59. lua_settingM = GameSettingManager:getInstance()
  60. lua_settingM:ApplySetting()
  61. UpdateBeat:Add(GameModule.Update)
  62. LateUpdateBeat:Add(GameModule.LateUpdate)
  63. LoginBg.New()
  64. SDKManager:RegisterCallbackFunc( SDKUtil.SDKCallBack )
  65. StepPackModule.New()
  66. co.InitTempVectorArray()
  67. GameDontDestroyOnLoad()
  68. local function onLoadLogicModule()
  69. print("onLoadLogicModule")
  70. --开始加载逻辑模块
  71. LoginController.Instance:ShowLoading()
  72. GlobleLogicFile = GlobleLogicFile or {}
  73. require("game.common.ModulesController")
  74. end
  75. GlobalEventSystem:Bind(EventName.START_LOAD_LOGIC_MODULE,onLoadLogicModule)
  76. local game_start = function()
  77. print("PreLoadProgressDelete")
  78. --进入场景后销毁预加载的登录创角资源
  79. if GameModule.PreLoadProgress then
  80. GameModule.PreLoadProgress:DeleteMe()
  81. GameModule.PreLoadProgress = nil
  82. end
  83. end
  84. GlobalEventSystem:Bind(EventName.GAME_START,game_start)
  85. local function onDBLoadCompleted()
  86. print("onDBLoadCompleted")
  87. require("game.luaError.LuaErrorController")
  88. require("game.login.LoginModel")
  89. require("game.login.AccountView")
  90. require("game.login.AccountServerItem")
  91. require("game.login.ServerItem")
  92. require("gameinput.GameInputManager")
  93. LuaErrorController.New()
  94. SysInfoCtrl.New()
  95. GameInputManager.New()
  96. UserMsgAdapter:getInstance()
  97. LoginController.New()
  98. --关闭引擎的加载界面
  99. PreLoadViewState = false
  100. Util.ClosePreLoadView()
  101. --显示登录界面
  102. GlobalEventSystem:Fire(LoginStateEvent.SHOW_LOGIN_VIEW)
  103. end
  104. GlobalEventSystem:Bind(EventName.DB_DATA_LOAD_COMPLETED,onDBLoadCompleted)
  105. local function onPreloadLoginResCompleted()
  106. --首次预加载回调才进行
  107. if PreLoadViewState then
  108. print("onPreloadLoginResCompleted")
  109. ConfigItemMgr.New()
  110. CheckAndroid9SystemHair()
  111. end
  112. end
  113. GlobalEventSystem:Bind(EventName.PRELOAD_LOGIN_RES_COMPLETED,onPreloadLoginResCompleted)
  114. local start_init_login = function()
  115. print("OnPreLoadProgress")
  116. if GameModule.PreLoadProgress == nil or GameModule.PreLoadProgress._use_delete_method then
  117. GameModule.PreLoadProgress = PreLoadBeforeLogin.New()
  118. end
  119. end
  120. GlobalEventSystem:Bind(LoginStateEvent.START_LOGIN_MODULE,start_init_login)
  121. local function onUILoadCompleted()
  122. print("onUILoadCompleted")
  123. start_init_login()
  124. end
  125. GlobalEventSystem:Bind(EventName.GAME_UI_LOAD_COMPLETED,onUILoadCompleted)
  126. --开始预加载资源
  127. UiFactory.StartPreload()
  128. end
  129. function GameModule.Update()
  130. GameModule.runner:Update( Time.time, Time.deltaTime )
  131. --开始逻辑模块后分帧加载系统文件
  132. if not GameModule.init_modules_complete and GlobleLogicFile then
  133. GameModule.GameLogicModuleInit()
  134. end
  135. end
  136. function GameModule.LateUpdate()
  137. GameModule.runner:LateUpdate( Time.time, Time.deltaTime )
  138. end
  139. function GameModule.GameLogicModuleInit()
  140. for i = 1,3 do
  141. GlobleInitLogicIndex = GlobleInitLogicIndex or 1
  142. require(GlobleLogicFile[GlobleInitLogicIndex])
  143. if GlobleInitLogicIndex == #GlobleLogicFile then
  144. GlobleLogicFile = nil
  145. ModulesController.New()
  146. GameModule.init_modules_complete = true
  147. LoginController.Instance:CloseLoading()
  148. --逻辑模块全部加载完成后触发获取角色数据流程
  149. GlobalEventSystem:Fire(EventName.START_LOHIN_ROLE_ACTION)
  150. return
  151. else
  152. GlobleInitLogicIndex = GlobleInitLogicIndex + 1
  153. end
  154. end
  155. end