loading失败可以重试
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled

This commit is contained in:
TJH 2025-12-30 13:30:52 +08:00
parent 87e7307d0d
commit 04084da893
3 changed files with 252 additions and 292 deletions

View File

@ -23,7 +23,7 @@
"_active": true, "_active": true,
"_components": [], "_components": [],
"_prefab": { "_prefab": {
"__id__": 89 "__id__": 86
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
@ -54,7 +54,7 @@
}, },
"autoReleaseAssets": false, "autoReleaseAssets": false,
"_globals": { "_globals": {
"__id__": 90 "__id__": 87
}, },
"_id": "6c29a3fe-b10e-44a5-98e3-55595b231767" "_id": "6c29a3fe-b10e-44a5-98e3-55595b231767"
}, },
@ -77,25 +77,25 @@
"__id__": 8 "__id__": 8
}, },
{ {
"__id__": 67 "__id__": 64
}, },
{ {
"__id__": 70 "__id__": 67
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{
"__id__": 82
},
{
"__id__": 83
},
{
"__id__": 84
},
{ {
"__id__": 85 "__id__": 85
},
{
"__id__": 86
},
{
"__id__": 87
},
{
"__id__": 88
} }
], ],
"_prefab": null, "_prefab": null,
@ -341,22 +341,22 @@
"__id__": 9 "__id__": 9
}, },
{ {
"__id__": 60 "__id__": 57
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{
"__id__": 60
},
{
"__id__": 61
},
{
"__id__": 62
},
{ {
"__id__": 63 "__id__": 63
},
{
"__id__": 64
},
{
"__id__": 65
},
{
"__id__": 66
} }
], ],
"_prefab": null, "_prefab": null,
@ -427,18 +427,15 @@
}, },
{ {
"__id__": 46 "__id__": 46
},
{
"__id__": 49
} }
], ],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 58 "__id__": 55
}, },
{ {
"__id__": 59 "__id__": 56
} }
], ],
"_prefab": null, "_prefab": null,
@ -1782,138 +1779,6 @@
"_shadowBlur": 2, "_shadowBlur": 2,
"_id": "2380yWt0tOa6GJutBEnRsb" "_id": "2380yWt0tOa6GJutBEnRsb"
}, },
{
"__type__": "cc.Node",
"_name": "retryLabel",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 9
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 47
},
{
"__id__": 48
}
],
"_prefab": null,
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": -650,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": "14e7XZMaJFYLTkByEFJD19"
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 46
},
"_enabled": true,
"__prefab": null,
"_contentSize": {
"__type__": "cc.Size",
"width": 1021.423828125,
"height": 56.4
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 1
},
"_id": "569fDE9xdENZpBizWSQ/8L"
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 46
},
"_enabled": true,
"__prefab": null,
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_string": "",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 38,
"_fontSize": 38,
"_fontFamily": "Arial",
"_lineHeight": 40,
"_overflow": 3,
"_enableWrapText": true,
"_font": null,
"_isSystemFontUsed": true,
"_spacingX": 0,
"_isItalic": false,
"_isBold": true,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
"_enableOutline": true,
"_outlineColor": {
"__type__": "cc.Color",
"r": 36,
"g": 37,
"b": 46,
"a": 255
},
"_outlineWidth": 3,
"_enableShadow": false,
"_shadowColor": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_shadowOffset": {
"__type__": "cc.Vec2",
"x": 2,
"y": 2
},
"_shadowBlur": 2,
"_id": "e95YoCoCNIG4q/RXhLojDR"
},
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "Btn", "_name": "Btn",
@ -1924,26 +1789,26 @@
}, },
"_children": [ "_children": [
{ {
"__id__": 50 "__id__": 47
} }
], ],
"_active": false, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 54 "__id__": 51
}, },
{ {
"__id__": 55 "__id__": 52
}, },
{ {
"__id__": 56 "__id__": 53
} }
], ],
"_prefab": null, "_prefab": null,
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 0, "x": 0,
"y": -610, "y": -600,
"z": 0 "z": 0
}, },
"_lrot": { "_lrot": {
@ -1975,19 +1840,19 @@
"_objFlags": 512, "_objFlags": 512,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": { "_parent": {
"__id__": 49 "__id__": 46
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 51 "__id__": 48
}, },
{ {
"__id__": 52 "__id__": 49
}, },
{ {
"__id__": 53 "__id__": 50
} }
], ],
"_prefab": null, "_prefab": null,
@ -2026,7 +1891,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 50 "__id__": 47
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2048,7 +1913,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 50 "__id__": 47
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2110,7 +1975,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 50 "__id__": 47
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2123,7 +1988,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 49 "__id__": 46
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2145,7 +2010,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 49 "__id__": 46
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2184,13 +2049,13 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 49 "__id__": 46
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
"clickEvents": [ "clickEvents": [
{ {
"__id__": 57 "__id__": 54
} }
], ],
"_interactable": true, "_interactable": true,
@ -2242,7 +2107,7 @@
"_duration": 0.1, "_duration": 0.1,
"_zoomScale": 1.2, "_zoomScale": 1.2,
"_target": { "_target": {
"__id__": 49 "__id__": 46
}, },
"_id": "54j4lwPyZHbqqANZE+r9Tj" "_id": "54j4lwPyZHbqqANZE+r9Tj"
}, },
@ -2320,10 +2185,10 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 61 "__id__": 58
}, },
{ {
"__id__": 62 "__id__": 59
} }
], ],
"_prefab": null, "_prefab": null,
@ -2362,7 +2227,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 60 "__id__": 57
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2384,7 +2249,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 60 "__id__": 57
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2528,10 +2393,10 @@
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 68 "__id__": 65
}, },
{ {
"__id__": 69 "__id__": 66
} }
], ],
"_prefab": null, "_prefab": null,
@ -2570,7 +2435,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 67 "__id__": 64
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2592,7 +2457,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 67 "__id__": 64
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2635,22 +2500,22 @@
}, },
"_children": [ "_children": [
{ {
"__id__": 71 "__id__": 68
}, },
{ {
"__id__": 75 "__id__": 72
}, },
{ {
"__id__": 80 "__id__": 77
} }
], ],
"_active": false, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 83 "__id__": 80
}, },
{ {
"__id__": 84 "__id__": 81
} }
], ],
"_prefab": null, "_prefab": null,
@ -2689,19 +2554,19 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": { "_parent": {
"__id__": 70 "__id__": 67
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 72 "__id__": 69
}, },
{ {
"__id__": 73 "__id__": 70
}, },
{ {
"__id__": 74 "__id__": 71
} }
], ],
"_prefab": null, "_prefab": null,
@ -2740,7 +2605,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 71 "__id__": 68
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2762,7 +2627,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 71 "__id__": 68
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2774,7 +2639,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 71 "__id__": 68
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2813,22 +2678,22 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": { "_parent": {
"__id__": 70 "__id__": 67
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{
"__id__": 73
},
{
"__id__": 74
},
{
"__id__": 75
},
{ {
"__id__": 76 "__id__": 76
},
{
"__id__": 77
},
{
"__id__": 78
},
{
"__id__": 79
} }
], ],
"_prefab": null, "_prefab": null,
@ -2867,7 +2732,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 75 "__id__": 72
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2889,7 +2754,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 75 "__id__": 72
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2951,7 +2816,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 75 "__id__": 72
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2964,7 +2829,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 75 "__id__": 72
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -2994,16 +2859,16 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"_parent": { "_parent": {
"__id__": 70 "__id__": 67
}, },
"_children": [], "_children": [],
"_active": true, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 81 "__id__": 78
}, },
{ {
"__id__": 82 "__id__": 79
} }
], ],
"_prefab": null, "_prefab": null,
@ -3042,7 +2907,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 80 "__id__": 77
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -3064,7 +2929,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 80 "__id__": 77
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -3103,7 +2968,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 70 "__id__": 67
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -3125,7 +2990,7 @@
"_objFlags": 0, "_objFlags": 0,
"__editorExtras__": {}, "__editorExtras__": {},
"node": { "node": {
"__id__": 70 "__id__": 67
}, },
"_enabled": true, "_enabled": true,
"__prefab": null, "__prefab": null,
@ -3216,18 +3081,27 @@
"__id__": 37 "__id__": 37
}, },
"startBtnNode": { "startBtnNode": {
"__id__": 49 "__id__": 46
}, },
"LoadingUINode": { "LoadingUINode": {
"__id__": 9 "__id__": 9
}, },
"rb7Logo": { "rb7Logo": {
"__id__": 67 "__id__": 64
}, },
"languageJson": { "languageJson": {
"__uuid__": "65d2a408-9396-47e4-99de-73423a590b7f", "__uuid__": "65d2a408-9396-47e4-99de-73423a590b7f",
"__expectedType__": "cc.JsonAsset" "__expectedType__": "cc.JsonAsset"
}, },
"tipLabel": {
"__id__": 45
},
"startBtn": {
"__id__": 53
},
"startBtnLabel": {
"__id__": 49
},
"_id": "402ZKZqylO5qV7VlV8TRcy" "_id": "402ZKZqylO5qV7VlV8TRcy"
}, },
{ {
@ -3244,10 +3118,10 @@
"__id__": 5 "__id__": 5
}, },
"Logo": { "Logo": {
"__id__": 67 "__id__": 64
}, },
"rotateNode": { "rotateNode": {
"__id__": 70 "__id__": 67
}, },
"_id": "d8F/UwpTxNpZhwSJjDvnkk" "_id": "d8F/UwpTxNpZhwSJjDvnkk"
}, },
@ -3262,28 +3136,28 @@
{ {
"__type__": "cc.SceneGlobals", "__type__": "cc.SceneGlobals",
"ambient": { "ambient": {
"__id__": 91 "__id__": 88
}, },
"shadows": { "shadows": {
"__id__": 92 "__id__": 89
}, },
"_skybox": { "_skybox": {
"__id__": 93 "__id__": 90
}, },
"fog": { "fog": {
"__id__": 94 "__id__": 91
}, },
"octree": { "octree": {
"__id__": 95 "__id__": 92
}, },
"skin": { "skin": {
"__id__": 96 "__id__": 93
}, },
"lightProbeInfo": { "lightProbeInfo": {
"__id__": 97 "__id__": 94
}, },
"postSettings": { "postSettings": {
"__id__": 98 "__id__": 95
}, },
"bakedWithStationaryMainLight": false, "bakedWithStationaryMainLight": false,
"bakedWithHighpLightmap": false "bakedWithHighpLightmap": false

View File

@ -32,7 +32,7 @@ export function getHistoryUrl() {
} }
export function getLanguage() { export function getLanguage() {
// return 'zh'; return 'zh';
return language; return language;
} }

View File

@ -1,18 +1,32 @@
import { _decorator, Component, Node, ProgressBar, Label, UITransform, tween, JsonAsset } from 'cc'; import {
import { callGameApi, getIsRB7, getLanguage, initReqAddr } from './comm'; _decorator,
import { DEBUG } from 'cc/env'; Component,
import { initErrorManager } from './manager/ErrorManager'; Node,
import { I18nManager } from './manager/I18nManager'; ProgressBar,
import { LocalizedSprite } from './i18n/LocalizedSprite'; Label,
import { AudioManager } from './manager/AudioManager'; UITransform,
import { GameDataManager } from './manager/GameDataManager'; tween,
import { ResManager } from './manager/ResManager'; JsonAsset,
import { NodePoolManager } from './manager/NodePoolManager'; Button,
} from "cc";
import {
callGameApi,
getIsRB7,
getLanguage,
initReqAddr,
} from "./comm";
import { DEBUG } from "cc/env";
import { initErrorManager } from "./manager/ErrorManager";
import { I18nManager } from "./manager/I18nManager";
import { LocalizedSprite } from "./i18n/LocalizedSprite";
import { AudioManager } from "./manager/AudioManager";
import { GameDataManager } from "./manager/GameDataManager";
import { ResManager } from "./manager/ResManager";
import { NodePoolManager } from "./manager/NodePoolManager";
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@ccclass('Loading') @ccclass("Loading")
export class Loading extends Component { export class Loading extends Component {
// UI组件 // UI组件
@property(Node) progressNode: Node = null; @property(Node) progressNode: Node = null;
@ -25,22 +39,32 @@ export class Loading extends Component {
@property(Node) LoadingUINode: Node = null; @property(Node) LoadingUINode: Node = null;
@property(Node) rb7Logo: Node = null; @property(Node) rb7Logo: Node = null;
@property(JsonAsset) languageJson: JsonAsset = null; @property(JsonAsset) languageJson: JsonAsset = null;
@property(Label)
tipLabel: Label = null;
@property(Button)
startBtn: Button = null;
@property(Label)
startBtnLabel: Label = null;
private _networkComplete = false;
private _retryCount = 0;
private readonly MAX_RETRY = 5;
// 加载状态 // 加载状态
private isNetworkReady = false; private isNetworkReady = false;
private readonly PROGRESS_ANIMATION_DURATION = 0.3; private readonly PROGRESS_ANIMATION_DURATION = 0.3;
// 进度条阶段 // 进度条阶段
private readonly PROGRESS_INIT = 0.2; // 初始化完成 private readonly PROGRESS_INIT = 0.2; // 初始化完成
private readonly PROGRESS_NETWORK = 0.5; // 网络请求完成 private readonly PROGRESS_NETWORK = 0.5; // 网络请求完成
private readonly PROGRESS_RESOURCE = 0.9; // 资源加载完成 private readonly PROGRESS_RESOURCE = 0.9; // 资源加载完成
private readonly PROGRESS_COMPLETE = 1.0; // 完全加载完成 private readonly PROGRESS_COMPLETE = 1.0; // 完全加载完成
// 游戏节点 // 游戏节点
private gameContainer: Node = null; private gameContainer: Node = null;
private gameNode: Node = null; private gameNode: Node = null;
protected async onLoad() { protected async onLoad() {
initReqAddr(); initReqAddr();
let language = getLanguage(); let language = getLanguage();
@ -54,8 +78,11 @@ export class Loading extends Component {
} }
initErrorManager(); initErrorManager();
await I18nManager.instance.ensureI18nSprite(language, '2'); await I18nManager.instance.ensureI18nSprite(language, "2");
this.node.getChildByPath('Mask/LoadingUINode/msg').getComponent(LocalizedSprite).updateSpriteForPreload(language); this.node
.getChildByPath('Mask/LoadingUINode/msg')
.getComponent(LocalizedSprite)
.updateSpriteForPreload(language);
this.node.getChildByPath('Mask/LoadingUINode/msg').active = true; this.node.getChildByPath('Mask/LoadingUINode/msg').active = true;
await I18nManager.instance.init(language, this.languageJson); await I18nManager.instance.init(language, this.languageJson);
@ -68,15 +95,15 @@ export class Loading extends Component {
try { try {
await this.initializeSystem(); await this.initializeSystem();
AudioManager.instance.init(); AudioManager.instance.init();
this.updateLoadingText('AID_LOADING'); this.updateLoadingText("AID_LOADING");
// 延迟一下让用户看到进度条开始 // 延迟一下让用户看到进度条开始
this.scheduleOnce(() => { this.scheduleOnce(() => {
this.startNetworkLoading(); this.startNetworkLoading();
}, 0.2); }, 0.2);
} catch (error) { } catch (error) {
console.error('Network initialization failed:', error); console.error("Network initialization failed:", error);
// this.handleError(error); this.handleError(error);
} }
} }
@ -84,15 +111,13 @@ export class Loading extends Component {
/** 初始化系统 */ /** 初始化系统 */
private async initializeSystem() { private async initializeSystem() {
this.rb7Logo.active = getIsRB7(); this.rb7Logo.active = getIsRB7();
// if (DEBUG) {
// await getTestToken('nova006', 'faketrans');
// }
} }
/** 初始化UI */ /** 初始化UI */
private initializeUI() { private initializeUI() {
this.startBtnNode.active = false; this.startBtnNode.active = false;
this.gameContainer = this.node.getChildByPath('Mask/GameNode') this.gameContainer = this.node
.getChildByPath('Mask/GameNode')
// 初始化进度条为0 // 初始化进度条为0
this.updateProgress(0); this.updateProgress(0);
@ -100,7 +125,7 @@ export class Loading extends Component {
/** 开始网络加载 */ /** 开始网络加载 */
private async startNetworkLoading() { private async startNetworkLoading() {
this.updateLoadingText('AID_LOADING'); this.updateLoadingText("AID_LOADING");
try { try {
let gameInfo = await callGameApi("gameinfo", {}); let gameInfo = await callGameApi("gameinfo", {});
@ -116,27 +141,67 @@ export class Loading extends Component {
this.startResourceLoading(); this.startResourceLoading();
}, 0.3); }, 0.3);
} catch (error) { } catch (error) {
console.error("Network initialization failed:", error);
this.handleError(error);
}
}
private handleError(error: Error) {
this._retryCount++;
if (this._retryCount <= this.MAX_RETRY) {
// 自动重试
// this.tipLabel.string = `retry(${this._retryCount}/${this.MAX_RETRY})...`;
switch (this._retryCount) {
case 1:
this.tipLabel.string = I18nManager.instance.t("AID_NETWORK_RETRY_1");
break;
case 2:
this.tipLabel.string = I18nManager.instance.t("AID_NETWORK_RETRY_2");
break;
case 3:
this.tipLabel.string = I18nManager.instance.t("AID_NETWORK_RETRY_3");
break;
case 4:
this.tipLabel.string = I18nManager.instance.t("AID_NETWORK_RETRY_4");
break;
case 5:
this.tipLabel.string = I18nManager.instance.t("AID_NETWORK_RETRY_5");
break;
}
this.scheduleOnce(() => {
if (!this._networkComplete) {
this.startNetworkLoading();
} else {
this.startResourceLoading();
}
}, 2);
} else {
// 显示重试按钮
this.tipLabel.string = I18nManager.instance.t("AID_LOADING");
this.startBtn.node.active = true;
this.progressBar.node.active = false;
this.progressLabel.node.active = false;
this.startBtnLabel.string = I18nManager.instance.t(
"AID_ERROR_RETRY_BUTTON"
);
} }
} }
/** 开始资源加载 */ /** 开始资源加载 */
private async startResourceLoading() { private async startResourceLoading() {
if (!this.isNetworkReady) return; if (!this.isNetworkReady) return;
// this.updateLoadingText('Loading More...'); this.tipLabel.string = I18nManager.instance.t("AID_LOADING");
this.startBtnNode.active = false; this.startBtnNode.active = false;
this.gameNode = await ResManager.instance.loadPrefabFromBundle( this.gameNode = await ResManager.instance.loadPrefabFromBundle(
'Game', "Game",
'SlotScene', "SlotScene",
(finished: number, total: number) => { (finished: number, total: number) => {
if (total > 0) { if (total > 0) {
// 资源加载进度从50%到90% // 资源加载进度从50%到90%
const resourceProgress = finished / total; const resourceProgress = finished / total;
const currentProgress = this.PROGRESS_NETWORK + const currentProgress =
(resourceProgress * (this.PROGRESS_RESOURCE - this.PROGRESS_NETWORK)); this.PROGRESS_NETWORK +
resourceProgress * (this.PROGRESS_RESOURCE - this.PROGRESS_NETWORK);
this.updateProgress(currentProgress); this.updateProgress(currentProgress);
} }
} }
@ -166,29 +231,37 @@ export class Loading extends Component {
/** 更新进度条 */ /** 更新进度条 */
private updateProgress(progress: number) { private updateProgress(progress: number) {
tween(this.progressBar) tween(this.progressBar)
.to(this.PROGRESS_ANIMATION_DURATION, { progress }, { .to(
easing: 'smooth', this.PROGRESS_ANIMATION_DURATION,
onUpdate: (target: any) => { { progress },
const currentProgress = target.progress; {
this.progressLabel.string = `${Math.floor(currentProgress * 100)}%`; easing: "smooth",
this.maskSpineNode.getComponent(UITransform).setContentSize(currentProgress * 509, 100); onUpdate: (target: any) => {
this.lightSpineNode.setPosition(currentProgress * 509 - 278, -612, 0) const currentProgress = target.progress;
this.progressLabel.string = `${Math.floor(currentProgress * 100)}%`;
this.maskSpineNode
.getComponent(UITransform)
.setContentSize(currentProgress * 509, 100);
this.lightSpineNode.setPosition(
currentProgress * 509 - 268,
-612,
0
);
},
} }
}) )
.start(); .start();
} }
/** 更新加载文本 */ /** 更新加载文本 */
private updateLoadingText(key: string) { private updateLoadingText(key: string) {
this.loadingLabel.string = `${I18nManager.instance.t(key)}...`; this.loadingLabel.string = I18nManager.instance.t("AID_LOADING");
} }
/** 加载完成 */ /** 加载完成 */
private onLoadComplete() { private onLoadComplete() {
this.startBtnLabel.string = I18nManager.instance.t("AID_GET_STARTED");
this.hideProgressUI(); this.hideProgressUI();
this.showStartButton(); this.showStartButton();
} }
@ -207,27 +280,40 @@ export class Loading extends Component {
this.startBtnNode.active = true; this.startBtnNode.active = true;
} }
/** 开始游戏 */ /** 开始游戏 */
// private startGame() { private startGame() {
// if (!this.gameContainer) { if (!this.gameContainer) {
// console.error('Game container not found'); console.error("Game container not found");
// return; return;
// } }
// this.gameContainer.addChild(this.gameNode);
// // this.node.destroy();
// }
/** 按钮点击事件 */
onStartBtnClick() {
this.rb7Logo.active = false;
// 添加到场景
this.gameContainer.addChild(this.gameNode); this.gameContainer.addChild(this.gameNode);
// 隐藏加载界面 // 隐藏加载界面
this.LoadingUINode.destroy(); this.LoadingUINode.destroy();
} }
/** 按钮点击事件 */
onStartBtnClick() {
if (
this.startBtnLabel.string ===
I18nManager.instance.t("AID_ERROR_RETRY_BUTTON")
) {
// 重试逻辑
this._retryCount = 0;
this.startBtn.node.active = false;
this.progressBar.node.active = true;
this.progressLabel.node.active = true;
if (!this._networkComplete) {
this.startNetworkLoading();
} else {
this.startResourceLoading();
}
} else {
this.startGame();
}
}
onDestroy() { onDestroy() {
this.unscheduleAllCallbacks(); this.unscheduleAllCallbacks();
tween(this.progressBar).stop(); tween(this.progressBar).stop();