源战役客户端
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 

180 строки
5.3 KiB

require("utils.EngineClass")
require("systool.RequireSystool")
require("game.common.LuaMemManager")
LuaMemManager.New()
local require = require
GameModule = GameModule or {}
local GameModule = GameModule
local Time = Time
function GameModule.Main()
QualitySettings.streamingMipmapsActive = false
-- 测试
-- if ApplicationPlatform == RuntimePlatform.Android or tostring(ApplicationPlatform) == tostring(RuntimePlatform.Android) then
-- QualitySettings.streamingMipmapsActive = true
-- QualitySettings.streamingMipmapsMemoryBudget = 2048
-- QualitySettings.streamingMipmapsMaxLevelReduction = 1
-- QualitySettings.streamingMipmapsAddAllCameras = true
-- end
GlobalUserOperateTime = 0
--输出 assetbundle 包更新下载加载卸载日志
--AppConst.OpenDownloadLog = true
OpenGameDebugLog = AppConst.OpenDownloadLog
require("clientconfig.ClientConfig")
require("config.Config")
require("utils.RequireUtils")
require("game.common.RequireCommon")
require("sysinfo.SysInfoCtrl")
require("newgameui.RequireGameUI")
require("language.RequireLanguage")
require("game.login.LoginController")
require("game.common.OpenFun")
require("game.common.StepPackModule")
require("utils.LuaFPS")
require("game.login.PreLoadBeforeLogin")
require("game.login.LoginBg")
math.randomseed(tostring(os.time()):reverse():sub(1, 6))
GameError.New()
SystemRuntimePlatform.Init()
-- if SystemRuntimePlatform.IsAndroid() then
-- G_DEBUG_MODE = true
-- end
SystemMemoryLevel.Init()
SetGameFrameRate()
InitResLoadSpeed()
InitEngineData()
GlobalTimerQuest = TimerQuest.New()
GameConfigUtil.Load()
GamePlatformRes.Load()
ShaderTools.Load()
GlobalEventSystem = EventSystem.New()
Runner:getInstance():AddRunObj(GlobalEventSystem, 3)
GameModule.runner = Runner:getInstance()
lua_resM = LuaResManager:getInstance()
lua_logM = LuaLogManager:getInstance()
lua_viewM = LuaViewManager:getInstance()
LuaMemManager:getInstance():InitInfo()
CookieWrapper.New()
lua_soundM = LuaSoundManager:getInstance()
lua_soundM:LoadSetting()
lua_settingM = GameSettingManager:getInstance()
lua_settingM:ApplySetting()
UpdateBeat:Add(GameModule.Update)
LateUpdateBeat:Add(GameModule.LateUpdate)
LoginBg.New()
SDKManager:RegisterCallbackFunc( SDKUtil.SDKCallBack )
StepPackModule.New()
co.InitTempVectorArray()
GameDontDestroyOnLoad()
local function onLoadLogicModule()
print("onLoadLogicModule")
--开始加载逻辑模块
LoginController.Instance:ShowLoading()
GlobleLogicFile = GlobleLogicFile or {}
require("game.common.ModulesController")
end
GlobalEventSystem:Bind(EventName.START_LOAD_LOGIC_MODULE,onLoadLogicModule)
local game_start = function()
print("PreLoadProgressDelete")
--进入场景后销毁预加载的登录创角资源
if GameModule.PreLoadProgress then
GameModule.PreLoadProgress:DeleteMe()
GameModule.PreLoadProgress = nil
end
end
GlobalEventSystem:Bind(EventName.GAME_START,game_start)
local function onDBLoadCompleted()
print("onDBLoadCompleted")
require("game.luaError.LuaErrorController")
require("game.login.LoginModel")
require("game.login.AccountView")
require("game.login.AccountServerItem")
require("game.login.ServerItem")
require("gameinput.GameInputManager")
LuaErrorController.New()
SysInfoCtrl.New()
GameInputManager.New()
UserMsgAdapter:getInstance()
LoginController.New()
--关闭引擎的加载界面
PreLoadViewState = false
Util.ClosePreLoadView()
--显示登录界面
GlobalEventSystem:Fire(LoginStateEvent.SHOW_LOGIN_VIEW)
end
GlobalEventSystem:Bind(EventName.DB_DATA_LOAD_COMPLETED,onDBLoadCompleted)
local function onPreloadLoginResCompleted()
--首次预加载回调才进行
if PreLoadViewState then
print("onPreloadLoginResCompleted")
ConfigItemMgr.New()
CheckAndroid9SystemHair()
end
end
GlobalEventSystem:Bind(EventName.PRELOAD_LOGIN_RES_COMPLETED,onPreloadLoginResCompleted)
local start_init_login = function()
print("OnPreLoadProgress")
if GameModule.PreLoadProgress == nil or GameModule.PreLoadProgress._use_delete_method then
GameModule.PreLoadProgress = PreLoadBeforeLogin.New()
end
end
GlobalEventSystem:Bind(LoginStateEvent.START_LOGIN_MODULE,start_init_login)
local function onUILoadCompleted()
print("onUILoadCompleted")
start_init_login()
end
GlobalEventSystem:Bind(EventName.GAME_UI_LOAD_COMPLETED,onUILoadCompleted)
--开始预加载资源
UiFactory.StartPreload()
end
function GameModule.Update()
GameModule.runner:Update( Time.time, Time.deltaTime )
--开始逻辑模块后分帧加载系统文件
if not GameModule.init_modules_complete and GlobleLogicFile then
GameModule.GameLogicModuleInit()
end
end
function GameModule.LateUpdate()
GameModule.runner:LateUpdate( Time.time, Time.deltaTime )
end
function GameModule.GameLogicModuleInit()
for i = 1,3 do
GlobleInitLogicIndex = GlobleInitLogicIndex or 1
require(GlobleLogicFile[GlobleInitLogicIndex])
if GlobleInitLogicIndex == #GlobleLogicFile then
GlobleLogicFile = nil
ModulesController.New()
GameModule.init_modules_complete = true
LoginController.Instance:CloseLoading()
--逻辑模块全部加载完成后触发获取角色数据流程
GlobalEventSystem:Fire(EventName.START_LOHIN_ROLE_ACTION)
return
else
GlobleInitLogicIndex = GlobleInitLogicIndex + 1
end
end
end