85 lines
2.1 KiB
C++
85 lines
2.1 KiB
C++
|
|
|
|||
|
|
// 电脑的IP地址和端口
|
|||
|
|
#define PC_IP "192.168.200.3"
|
|||
|
|
#define PC_SCRIPT_PORT "39018"
|
|||
|
|
#define PC_LOG_PORT 39019
|
|||
|
|
|
|||
|
|
#include <stdio.h>
|
|||
|
|
#include <stdlib.h>
|
|||
|
|
#include <string.h>
|
|||
|
|
#include <stdarg.h>
|
|||
|
|
#include <switch.h>
|
|||
|
|
#include <sys/socket.h>
|
|||
|
|
#include <curl/curl.h>
|
|||
|
|
|
|||
|
|
#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<Scene_Loading_UI> 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;
|
|||
|
|
}
|