// 电脑的IP地址和端口 #define PC_IP "192.168.200.3" #define PC_SCRIPT_PORT "39018" #define PC_LOG_PORT 39019 #include #include #include #include #include #include #include #include "EngineCore/Asset_ImagePack.h" #include "EngineCore/Asset_Script.h" #include "squirrel/SquirrelEx.h" #include "Tool/RemoteLogger.h" #include "EngineCore/Game.h" #include "Scene/Scene_Loading_UI.h" #include "Tool/RefPtr.h" #include "Global/Global_Game.h" #include "Tool/ThreadPool.h" void InitScript() { SDL_Log("开始初始化PVF"); // 初始化脚本资源系统 Asset_Script::GetInstance().Init(); SDL_Log("PVF初始化完成!"); } void RunSetup() { // 初始化Squirrel脚本系统 SquirrelEx::GetInstance().Run(); // 初始化全局游戏类 Global_Game::GetInstance().Init(); // 设定UI层场景 RefPtr sceneUI = new Scene_Loading_UI; Game::GetInstance().ChangeUIScene(sceneUI); ThreadPool::GetInstance().enqueue(InitScript); } int main(int argc, char *argv[]) { socketInitializeDefault(); nxlinkStdio(); // 启用nxlink调试输出 curl_global_init(CURL_GLOBAL_DEFAULT); // 初始化libcurl chdir("/switch/Lenheart/MyGame/"); // 初始化Image资源系统 Asset_ImagePack::GetInstance().Init(); // 初始化脚本资源系统 Asset_Script::GetInstance(); // 初始化线程池 ThreadPool::GetInstance(); // 初始化日志系统 if (RemoteLogger::GetInstance().Init(PC_IP, PC_LOG_PORT)) { RemoteLogger::GetInstance().log("日志系统初始化成功!\n"); } // 初始化Squirrel脚本系统 SquirrelEx::GetInstance().Init(); // 请求脚本 SquirrelEx::GetInstance().RequestNetScript(PC_IP, PC_SCRIPT_PORT); // 初始化游戏引擎 Game &game = Game::GetInstance(); // 初始化各项目 game.Init(RunSetup); // 进入游戏循环逻辑 game.Run(); game.Clear(); ThreadPool::GetInstance().shutdown(); socketExit(); curl_global_cleanup(); return 0; }