SwitchGame/source/main.cpp

85 lines
2.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 电脑的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;
}