云环境和本地调试 添加

This commit is contained in:
2025-08-18 17:00:40 +08:00
parent addc61e2a9
commit a824d9a124
155 changed files with 6531 additions and 997 deletions

View File

@@ -12,8 +12,9 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ec
import { UIID } from "../common/config/GameUIConfig";
import { LoadingViewComp } from "./view/LoadingViewComp";
import { smc } from "../common/SingletonModuleComp";
import { WxCloudApi } from "../wx_clound_client_api/WxCloudApi";
import { WxCloudApi, UserGameData } from "../wx_clound_client_api/WxCloudApi";
import { GameDataSyncManager } from "../common/GameDataSyncManager";
import { Test } from "../common/Test";
// import {data} from "../data/data";
/**
@@ -47,18 +48,20 @@ export class Initialize extends ecs.Entity {
/** 加载自定义内容(可选) */
private loadCustom(queue: AsyncQueue) {
queue.push(async (next: NextFunction, params: any, args: any) => {
// 加载多语言对应字体
oops.res.load("language/font/" + oops.language.current, () => {
// 加载本地英雄数据
this.loadHeroDataFromLocal();
// 判断是否为微信客户端,是的话才加载云端数据
if (this.isWxClient()) {
this.loadWxDataFromCloud();
}
next();
});
try {
// 加载多语言对应字体
oops.res.load("language/font/" + oops.language.current, async () => {
// 统一的数据加载流程
await this.loadGameDataUnified();
next();
});
//加载精灵配置表
// oops.res.load("config/game/heros", next);
} catch (error) {
console.error("[Initialize]: 自定义内容加载失败:", error);
next(); // 即使失败也要继续,不阻塞游戏启动
}
});
}
@@ -96,42 +99,87 @@ export class Initialize extends ecs.Entity {
return typeof wx !== 'undefined' && typeof (wx as any).getSystemInfoSync === 'function';
}
private loadWxDataFromCloud() {
WxCloudApi.login().then(loginRes=>{
console.log("login res", loginRes);
});
}
/**
* 从本地存储加载游戏数据
* 统一的游戏数据加载流程
* 微信客户端:使用云端数据
* 非微信客户端:使用本地调试数据
*/
private loadHeroDataFromLocal() {
// 检查本地存储状态
const storageStatus = smc.checkLocalStorage();
if (storageStatus.isFirstTime) {
console.log("[Initialize]: 检测到首次启动游戏");
}
// 使用SingletonModuleComp的加载方法
// loadGameData方法已经包含了首次启动的处理逻辑
const success = smc.loadGameData();
if (success) {
console.log("[Initialize]: 游戏数据加载完成");
} else {
console.log("[Initialize]: 游戏数据加载失败,使用默认配置");
// 如果加载失败,初始化默认数据并保存
smc.initDefaultData();
smc.saveGameData();
}
// 再次检查存储状态,确认数据已保存
if (storageStatus.isFirstTime) {
const newStatus = smc.checkLocalStorage();
if (newStatus.hasFightHeros && newStatus.hasHeros && newStatus.hasGameData) {
console.log("[Initialize]: 首次启动数据保存成功");
private async loadGameDataUnified() {
try {
console.log("[Initialize]: 开始统一数据加载流程...");
if (this.isWxClient()) {
// 微信客户端:加载云端数据
console.log("[Initialize]: 检测到微信客户端,使用云端数据");
await this.loadFromCloud();
} else {
console.warn("[Initialize]: 首次启动数据保存可能失败");
// 非微信客户端:使用本地调试数据
console.log("[Initialize]: 非微信客户端,使用本地调试数据");
await this.loadFromLocalDebug();
}
} catch (error) {
console.error("[Initialize]: 统一数据加载失败:", error);
// 失败时使用默认数据 游戏需要退出
}
}
/**
* 从云端加载数据(微信客户端)
*/
private async loadFromCloud() {
try {
// 1. 初始化微信云环境
this.initWxCloudEnv();
// 2. 登录并获取云端数据
const loginResult = await WxCloudApi.login();
const response = loginResult.result;
if (response.code === 200) {
console.log("[Initialize]: 云端登录成功");
const cloudData = response.data;
// 3. 用云端数据覆盖本地数据
GameDataSyncManager.getInstance().overrideLocalDataWithRemote(cloudData, "云端");
} else {
console.warn("[Initialize]: 云端登录失败:", response.msg);
// 登录失败时使用本地数据 游戏需要退出
console.log("[Initialize]: 云端登录失败:", response.msg);
}
} catch (error) {
console.error("[Initialize]: 云端数据加载异常:", error);
// 异常时使用本地数据 游戏需要退出
}
}
/**
* 从本地调试数据加载(非微信客户端)
*/
private async loadFromLocalDebug() {
try {
// 使用本地调试API模拟云端接口
const loginResult = new Test().load_data_from_local()
// 用本地调试数据覆盖客户端数据
GameDataSyncManager.getInstance().overrideLocalDataWithRemote(loginResult, "本地调试");
} catch (error) {
console.error("[Initialize]: 本地调试数据加载异常:", error);
}
}
/**
* 初始化微信云环境
*/
private initWxCloudEnv() {
try {
// 请替换为您的实际云环境ID
const cloudEnvId = "cloud1-6gknw0qk911036d8"; // TODO: 配置您的云环境ID
WxCloudApi.init(cloudEnvId);
console.log("[Initialize]: 微信云环境初始化完成");
} catch (error) {
console.error("[Initialize]: 微信云环境初始化失败:", error);
}
}

View File

@@ -1,5 +1,5 @@
{
"ver": "4.0.23",
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "ffbce42c-e99f-48a0-8e73-ea6b756af330",

View File

@@ -1,5 +1,5 @@
{
"ver": "4.0.23",
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "92429ca4-4e7c-450a-b706-c96e7c2568e3",