mirror of
https://gitee.com/dgflash/oops-framework.git
synced 2026-05-21 10:15:50 +08:00
添加初始化流程模板中脚本方式使用多语言功能,并完善注释
This commit is contained in:
@@ -11,6 +11,9 @@
|
||||
"netInstableOpen": "Waiting ",
|
||||
"btn_audio_open1": "Music",
|
||||
"btn_audio_open2": "Effect",
|
||||
"loading_load_json": "Load Json",
|
||||
"loading_load_game": "Load Content",
|
||||
"loading_load_player": "Get user information",
|
||||
"role_lv": "Level",
|
||||
"role_hp": "HP",
|
||||
"role_power": "Power",
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
"netInstableOpen": "等待动画",
|
||||
"btn_audio_open1": "音乐播放",
|
||||
"btn_audio_open2": "音效播放",
|
||||
"loading_load_json": "加载游戏本地数据",
|
||||
"loading_load_game": "加载游戏内容",
|
||||
"loading_load_player": "获取用户信息",
|
||||
"role_lv": "等级",
|
||||
"role_hp": "生命",
|
||||
"role_power": "力量",
|
||||
|
||||
@@ -27,17 +27,17 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 36
|
||||
"__id__": 46
|
||||
},
|
||||
{
|
||||
"__id__": 38
|
||||
"__id__": 48
|
||||
},
|
||||
{
|
||||
"__id__": 40
|
||||
"__id__": 50
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 42
|
||||
"__id__": 52
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -149,7 +149,7 @@
|
||||
"node": {
|
||||
"__id__": 2
|
||||
},
|
||||
"_enabled": false,
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 6
|
||||
},
|
||||
@@ -164,7 +164,10 @@
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_spriteFrame": null,
|
||||
"_spriteFrame": {
|
||||
"__uuid__": "0021cb5a-e4f0-4709-b0b6-5e21875720b7@f9941",
|
||||
"__expectedType__": "cc.SpriteFrame"
|
||||
},
|
||||
"_type": 0,
|
||||
"_fillType": 0,
|
||||
"_sizeMode": 1,
|
||||
@@ -186,9 +189,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"root": null,
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
@@ -206,29 +207,32 @@
|
||||
"__id__": 9
|
||||
},
|
||||
{
|
||||
"__id__": 15
|
||||
"__id__": 19
|
||||
},
|
||||
{
|
||||
"__id__": 25
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 25
|
||||
"__id__": 35
|
||||
},
|
||||
{
|
||||
"__id__": 27
|
||||
"__id__": 37
|
||||
},
|
||||
{
|
||||
"__id__": 29
|
||||
"__id__": 39
|
||||
},
|
||||
{
|
||||
"__id__": 31
|
||||
"__id__": 41
|
||||
},
|
||||
{
|
||||
"__id__": 33
|
||||
"__id__": 43
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 35
|
||||
"__id__": 45
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -260,7 +264,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "pro_bar",
|
||||
"_name": "lab_prompt",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 8
|
||||
@@ -273,10 +277,191 @@
|
||||
},
|
||||
{
|
||||
"__id__": 12
|
||||
},
|
||||
{
|
||||
"__id__": 14
|
||||
},
|
||||
{
|
||||
"__id__": 16
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 14
|
||||
"__id__": 18
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 74.13,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
"__type__": "cc.Quat",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"w": 1
|
||||
},
|
||||
"_lscale": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"z": 1
|
||||
},
|
||||
"_layer": 33554432,
|
||||
"_euler": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.UITransform",
|
||||
"_name": "lab_progress<UITransform>",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 9
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 11
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 164,
|
||||
"height": 54.4
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
"x": 0.5,
|
||||
"y": 0.5
|
||||
},
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "37WpHB35ZA8KJNfmflUmio"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Label",
|
||||
"_name": "lab_progress<Label>",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 9
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 13
|
||||
},
|
||||
"_visFlags": 0,
|
||||
"_customMaterial": null,
|
||||
"_srcBlendFactor": 2,
|
||||
"_dstBlendFactor": 4,
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 255,
|
||||
"g": 255,
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_string": "状态提示",
|
||||
"_horizontalAlign": 1,
|
||||
"_verticalAlign": 1,
|
||||
"_actualFontSize": 40,
|
||||
"_fontSize": 40,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 40,
|
||||
"_overflow": 0,
|
||||
"_enableWrapText": true,
|
||||
"_font": null,
|
||||
"_isSystemFontUsed": true,
|
||||
"_isItalic": false,
|
||||
"_isBold": true,
|
||||
"_isUnderline": false,
|
||||
"_underlineHeight": 2,
|
||||
"_cacheMode": 0,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "18xXPm7ZRGtJOVkw0KWRyI"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.LabelOutline",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 9
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 15
|
||||
},
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 0,
|
||||
"g": 0,
|
||||
"b": 0,
|
||||
"a": 255
|
||||
},
|
||||
"_width": 2,
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "bfTjeen/RO8Z25U0XoQYb0"
|
||||
},
|
||||
{
|
||||
"__type__": "545c05XsG9GDJispEGWKvYv",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 9
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 17
|
||||
},
|
||||
"templateMode": false,
|
||||
"labelType": "cc.Label",
|
||||
"watchPath": "*.prompt",
|
||||
"watchPathArr": [
|
||||
""
|
||||
],
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
"fileId": "aaLLLRoNxJM6JIqIOxEbdK"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": null,
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
"fileId": "a4Hlk39nNMV7QG9p+cKfSl"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "pro_bar",
|
||||
"_objFlags": 0,
|
||||
"_parent": {
|
||||
"__id__": 8
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 20
|
||||
},
|
||||
{
|
||||
"__id__": 22
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 24
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -311,11 +496,11 @@
|
||||
"_name": "Sprite<UITransform>",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 9
|
||||
"__id__": 19
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 11
|
||||
"__id__": 21
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -338,11 +523,11 @@
|
||||
"_name": "Sprite<Sprite>",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 9
|
||||
"__id__": 19
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 13
|
||||
"__id__": 23
|
||||
},
|
||||
"_visFlags": 0,
|
||||
"_customMaterial": null,
|
||||
@@ -380,9 +565,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"root": null,
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
@@ -399,20 +582,20 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 16
|
||||
"__id__": 26
|
||||
},
|
||||
{
|
||||
"__id__": 18
|
||||
"__id__": 28
|
||||
},
|
||||
{
|
||||
"__id__": 20
|
||||
"__id__": 30
|
||||
},
|
||||
{
|
||||
"__id__": 22
|
||||
"__id__": 32
|
||||
}
|
||||
],
|
||||
"_prefab": {
|
||||
"__id__": 24
|
||||
"__id__": 34
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@@ -447,11 +630,11 @@
|
||||
"_name": "lab_progress<UITransform>",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 15
|
||||
"__id__": 25
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 17
|
||||
"__id__": 27
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -474,11 +657,11 @@
|
||||
"_name": "lab_progress<Label>",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 15
|
||||
"__id__": 25
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 19
|
||||
"__id__": 29
|
||||
},
|
||||
"_visFlags": 0,
|
||||
"_customMaterial": null,
|
||||
@@ -518,11 +701,11 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 15
|
||||
"__id__": 25
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 21
|
||||
"__id__": 31
|
||||
},
|
||||
"_color": {
|
||||
"__type__": "cc.Color",
|
||||
@@ -543,11 +726,11 @@
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"node": {
|
||||
"__id__": 15
|
||||
"__id__": 25
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 23
|
||||
"__id__": 33
|
||||
},
|
||||
"templateMode": true,
|
||||
"labelType": "cc.Label",
|
||||
@@ -563,9 +746,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"root": null,
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
@@ -580,7 +761,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 26
|
||||
"__id__": 36
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -607,7 +788,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 28
|
||||
"__id__": 38
|
||||
},
|
||||
"_visFlags": 0,
|
||||
"_customMaterial": null,
|
||||
@@ -652,10 +833,10 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 30
|
||||
"__id__": 40
|
||||
},
|
||||
"_barSprite": {
|
||||
"__id__": 12
|
||||
"__id__": 22
|
||||
},
|
||||
"_mode": 2,
|
||||
"_totalLength": 1,
|
||||
@@ -676,7 +857,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 32
|
||||
"__id__": 42
|
||||
},
|
||||
"controller": false,
|
||||
"watchPath": "",
|
||||
@@ -703,7 +884,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 34
|
||||
"__id__": 44
|
||||
},
|
||||
"_alignFlags": 4,
|
||||
"_target": null,
|
||||
@@ -731,9 +912,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"root": null,
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
@@ -748,7 +927,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 37
|
||||
"__id__": 47
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
@@ -775,7 +954,7 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 39
|
||||
"__id__": 49
|
||||
},
|
||||
"_alignFlags": 45,
|
||||
"_target": null,
|
||||
@@ -810,9 +989,9 @@
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": {
|
||||
"__id__": 41
|
||||
"__id__": 51
|
||||
},
|
||||
"_id": "daCFe+B0BOeZtHLHqBYu9Z"
|
||||
"_id": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.CompPrefabInfo",
|
||||
@@ -820,9 +999,7 @@
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": {
|
||||
"__id__": 1
|
||||
},
|
||||
"root": null,
|
||||
"asset": {
|
||||
"__id__": 0
|
||||
},
|
||||
|
||||
BIN
assets/resources/loading/texture/bg.png
Normal file
BIN
assets/resources/loading/texture/bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 352 KiB |
75
assets/resources/loading/texture/bg.png.meta
Normal file
75
assets/resources/loading/texture/bg.png.meta
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"ver": "1.0.22",
|
||||
"importer": "image",
|
||||
"imported": true,
|
||||
"uuid": "0021cb5a-e4f0-4709-b0b6-5e21875720b7",
|
||||
"files": [
|
||||
".png",
|
||||
".json"
|
||||
],
|
||||
"subMetas": {
|
||||
"6c48a": {
|
||||
"importer": "texture",
|
||||
"uuid": "0021cb5a-e4f0-4709-b0b6-5e21875720b7@6c48a",
|
||||
"displayName": "bg",
|
||||
"id": "6c48a",
|
||||
"name": "texture",
|
||||
"ver": "1.0.21",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"wrapModeS": "clamp-to-edge",
|
||||
"wrapModeT": "clamp-to-edge",
|
||||
"minfilter": "linear",
|
||||
"magfilter": "linear",
|
||||
"mipfilter": "none",
|
||||
"premultiplyAlpha": false,
|
||||
"anisotropy": 1,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "0021cb5a-e4f0-4709-b0b6-5e21875720b7"
|
||||
}
|
||||
},
|
||||
"f9941": {
|
||||
"importer": "sprite-frame",
|
||||
"uuid": "0021cb5a-e4f0-4709-b0b6-5e21875720b7@f9941",
|
||||
"displayName": "bg",
|
||||
"id": "f9941",
|
||||
"name": "spriteFrame",
|
||||
"ver": "1.0.9",
|
||||
"imported": true,
|
||||
"files": [
|
||||
".json"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"trimType": "auto",
|
||||
"trimThreshold": 1,
|
||||
"rotated": false,
|
||||
"offsetX": 0,
|
||||
"offsetY": 0,
|
||||
"trimX": 0,
|
||||
"trimY": 0,
|
||||
"width": 1600,
|
||||
"height": 720,
|
||||
"rawWidth": 1600,
|
||||
"rawHeight": 720,
|
||||
"borderTop": 0,
|
||||
"borderBottom": 0,
|
||||
"borderLeft": 0,
|
||||
"borderRight": 0,
|
||||
"isUuid": true,
|
||||
"imageUuidOrDatabaseUri": "0021cb5a-e4f0-4709-b0b6-5e21875720b7@6c48a",
|
||||
"atlasUuid": "",
|
||||
"packable": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"userData": {
|
||||
"type": "sprite-frame",
|
||||
"redirect": "0021cb5a-e4f0-4709-b0b6-5e21875720b7@f9941",
|
||||
"hasAlpha": false
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import { Root } from "./Root";
|
||||
|
||||
export class engine {
|
||||
/** 多语言模块 */
|
||||
public static i18n: LanguageManager;
|
||||
public static language: LanguageManager;
|
||||
/** 游戏时间管理 */
|
||||
public static timer: TimerManager;
|
||||
/** 游戏音乐管理 */
|
||||
@@ -25,21 +25,11 @@ export class engine {
|
||||
|
||||
/** 在Root.ts中初始化引导模块 */
|
||||
private static init(root: Root) {
|
||||
engine.i18n = new LanguageManager()
|
||||
engine.language = new LanguageManager()
|
||||
engine.timer = new TimerManager(root);
|
||||
engine.audio = AudioManager.instance;
|
||||
engine.http = new HttpRequest();
|
||||
engine.gui = new LayerManager(root.gui!);
|
||||
engine.game = root.addComponent(GameManager)!;
|
||||
}
|
||||
|
||||
/** 修改引擎全局游戏速度 (k-cocos.js) */
|
||||
public static get speed(): number {
|
||||
// @ts-ignore
|
||||
return cc.kGetSpeed();
|
||||
}
|
||||
public static set speed(value: number) {
|
||||
// @ts-ignore
|
||||
cc.kSetSpeed(value);
|
||||
}
|
||||
}
|
||||
@@ -16,27 +16,27 @@ export class LanguageManager extends EventDispatcher {
|
||||
/** Label修改之前的回调 */
|
||||
public beforeChangeLabel: ((comp: LanguageLabel, content: string, dataID: string) => void) | null = null;
|
||||
|
||||
private _currentLang: string = ""; // 当前语言
|
||||
private _supportLanguages: Array<string> = ["zh", "en", "tr"]; // 支持的语言
|
||||
private _current: string = ""; // 当前语言
|
||||
private _support: Array<string> = ["zh", "en", "tr"]; // 支持的语言
|
||||
private _languagePack: LanguagePack = new LanguagePack(); // 语言包
|
||||
|
||||
/** 设置多语言系统支持哪些语种 */
|
||||
public set supportLanguages(supportLanguages: Array<string>) {
|
||||
this._supportLanguages = supportLanguages;
|
||||
this._support = supportLanguages;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前语种
|
||||
*/
|
||||
public get currentLanguage(): string {
|
||||
return this._currentLang;
|
||||
public get current(): string {
|
||||
return this._current;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取支持的多语种数组
|
||||
*/
|
||||
public get languages(): string[] {
|
||||
return this._supportLanguages;
|
||||
return this._support;
|
||||
}
|
||||
|
||||
public isExist(lang: string): boolean {
|
||||
@@ -48,7 +48,7 @@ export class LanguageManager extends EventDispatcher {
|
||||
*/
|
||||
public getNextLang(): string {
|
||||
let supportLangs = this.languages;
|
||||
let index = supportLangs.indexOf(this._currentLang);
|
||||
let index = supportLangs.indexOf(this._current);
|
||||
let newLanguage = supportLangs[(index + 1) % supportLangs.length];
|
||||
return newLanguage;
|
||||
}
|
||||
@@ -67,7 +67,7 @@ export class LanguageManager extends EventDispatcher {
|
||||
warn("当前不支持该语种" + language + " 将自动切换到 zh 语种!");
|
||||
language = DEFAULT_LANGUAGE;
|
||||
}
|
||||
if (language === this._currentLang) {
|
||||
if (language === this._current) {
|
||||
callback(false);
|
||||
return;
|
||||
}
|
||||
@@ -80,7 +80,7 @@ export class LanguageManager extends EventDispatcher {
|
||||
}
|
||||
|
||||
Logger.logConfig(`当前语言为【${language}】`);
|
||||
this._currentLang = language;
|
||||
this._current = language;
|
||||
this._languagePack.updateLanguage(language);
|
||||
this.dispatchEvent(LanguageEvent.CHANGE, lang);
|
||||
callback(true);
|
||||
|
||||
@@ -49,9 +49,9 @@ export class LanguageLabel extends Component {
|
||||
}
|
||||
|
||||
get string(): string {
|
||||
let _string = engine.i18n.getLangByID(this._dataID);
|
||||
if (engine.i18n.beforeChangeLabel) {
|
||||
engine.i18n.beforeChangeLabel(this, _string, this._dataID);
|
||||
let _string = engine.language.getLangByID(this._dataID);
|
||||
if (engine.language.beforeChangeLabel) {
|
||||
engine.language.beforeChangeLabel(this, _string, this._dataID);
|
||||
}
|
||||
if (_string && this._params.length > 0) {
|
||||
this._params.forEach((item: LangLabelParamsItem) => {
|
||||
@@ -125,14 +125,14 @@ export class LanguageLabel extends Component {
|
||||
if (!this._dataID) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
let spcomp = this.getComponent(Label);
|
||||
if (!spcomp) {
|
||||
warn("[LanguageLabel], 该节点没有cc.Label组件");
|
||||
break;
|
||||
}
|
||||
|
||||
spcomp.fontFamily = this.getLabelFont(engine.i18n.currentLanguage);
|
||||
spcomp.fontFamily = this.getLabelFont(engine.language.current);
|
||||
spcomp.string = this.string;
|
||||
}
|
||||
while (false);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Component, Size, Sprite, SpriteFrame, UITransform, _decorator } from "cc";
|
||||
import { engine } from "../../Engine";
|
||||
import { resLoader } from "../../common/loader/ResLoader";
|
||||
import { Logger } from "../../common/log/Logger";
|
||||
import { engine } from "../../Engine";
|
||||
|
||||
const { ccclass, property, menu } = _decorator;
|
||||
|
||||
@@ -19,7 +19,7 @@ export class LanguageSprite extends Component {
|
||||
private isRawSize: boolean = true;
|
||||
|
||||
start() {
|
||||
this.language = engine.i18n.currentLanguage;
|
||||
this.language = engine.language.current;
|
||||
}
|
||||
|
||||
set language(lang: string) {
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/** 引擎扩展 */
|
||||
(function (global) {
|
||||
'use strict';
|
||||
|
||||
var cc = global.cc;
|
||||
|
||||
// 游戏速率
|
||||
cc.director._kSpeed = 1;
|
||||
var _originCalculateDeltaTime = cc.Director.prototype.calculateDeltaTime;
|
||||
cc.director.calculateDeltaTime = function (now) {
|
||||
_originCalculateDeltaTime.call(this, now);
|
||||
this._deltaTime *= this._kSpeed;
|
||||
}
|
||||
|
||||
/** 全局游戏动画数度设置 */
|
||||
cc.kSetSpeed = function (speed) {
|
||||
cc.director._kSpeed = speed;
|
||||
}
|
||||
cc.kGetSpeed = function () {
|
||||
return cc.director._kSpeed;
|
||||
}
|
||||
})(window)
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "javascript",
|
||||
"imported": true,
|
||||
"uuid": "8fb0bbdd-75fa-41fc-b2d4-20fd7d45f582",
|
||||
"files": [
|
||||
".js"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"moduleId": "project:///assets/libs/k-cocos.js",
|
||||
"importerSettings": 4,
|
||||
"isPlugin": true,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": true,
|
||||
"loadPluginInEditor": false,
|
||||
"dependencies": []
|
||||
}
|
||||
}
|
||||
@@ -5,8 +5,9 @@
|
||||
* @LastEditTime: 2022-01-24 15:04:19
|
||||
*/
|
||||
|
||||
import { Message } from "../../core/common/event/MessageManager";
|
||||
import { ecs } from "../../core/libs/ECS";
|
||||
import { netChannel } from "../common/net/NetChannelManager";
|
||||
import { GameEvent } from "../common/config/GameEvent";
|
||||
import { AccountNetDataComp } from "./bll/AccountNetData";
|
||||
import { AccountModelComp } from "./model/AccountModelComp";
|
||||
|
||||
@@ -26,15 +27,43 @@ export class Account extends ecs.Entity {
|
||||
constructor() {
|
||||
super();
|
||||
this.addComponents<ecs.Comp>(AccountModelComp);
|
||||
|
||||
this.addEvent();
|
||||
}
|
||||
|
||||
destroy(isClearData?: boolean): void {
|
||||
this.removeEvent();
|
||||
super.destroy(isClearData);
|
||||
}
|
||||
|
||||
/** 添加全局消息事件 */
|
||||
private addEvent() {
|
||||
Message.on(GameEvent.GameServerConnected, this.onHandler, this);
|
||||
}
|
||||
|
||||
/** 移除全局消息事件 */
|
||||
private removeEvent() {
|
||||
Message.off(GameEvent.GameServerConnected, this.onHandler, this);
|
||||
}
|
||||
|
||||
private onHandler(event: string, args: any) {
|
||||
switch (event) {
|
||||
case GameEvent.GameServerConnected:
|
||||
this.requestLoadPlayer();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/** 连接游戏服务器 */
|
||||
connect() {
|
||||
netChannel.gameCreate();
|
||||
netChannel.gameConnect();
|
||||
// netChannel.gameCreate();
|
||||
// netChannel.gameConnect();
|
||||
|
||||
// 无网状态下测试代码,有网络时会通过触发网络连接成功事件对接后续流程
|
||||
this.requestLoadPlayer();
|
||||
}
|
||||
|
||||
// 登录游戏
|
||||
/** 获取玩家信息 */
|
||||
requestLoadPlayer() {
|
||||
this.add(AccountNetDataComp);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import { Role } from "../../role/Role";
|
||||
import { Account } from "../Account";
|
||||
import { AccountModelComp } from "../model/AccountModelComp";
|
||||
|
||||
/** 帐号网络数据请求 */
|
||||
/** 请求玩家游戏数据 */
|
||||
@ecs.register('AccountNetData')
|
||||
export class AccountNetDataComp extends ecs.Comp {
|
||||
reset() { }
|
||||
@@ -44,30 +44,46 @@ export class AccountNetDataSystem extends ecs.ComblockSystem implements ecs.IEnt
|
||||
// // 请求登录游戏获取角色数据
|
||||
// netChannel.game.req("LoginAction", "loadPlayer", params, onComplete);
|
||||
|
||||
/** 离线测试代码 */
|
||||
var role = new Role();
|
||||
role.RoleModel.id = 1;
|
||||
role.RoleModel.name = "测试角色";
|
||||
role.RoleLevel.lv = 1; // + 5 hp
|
||||
role.RoleJobModel.id = 1; // + 2 power, + 10 ad
|
||||
e.AccountModel.role = role;
|
||||
|
||||
// 角色基础属性绑定到界面上显示
|
||||
VM.add(role.RoleModel.vm, "role");
|
||||
|
||||
// 角色信息界面显示对象
|
||||
var role_attr = ViewUtil.createPrefabNode("game/battle/role_attr");
|
||||
role_attr.parent = engine.gui.root;
|
||||
|
||||
// 角色动画显示对象
|
||||
role.load();
|
||||
role.RoleView.node.parent = engine.gui.root;
|
||||
role.RoleView.node.setPosition(0, -200, 0);
|
||||
this.test(e);
|
||||
|
||||
e.remove(AccountNetDataComp);
|
||||
}
|
||||
}
|
||||
|
||||
/** 离线测试代码(自定义逻辑) */
|
||||
private test(e: Account) {
|
||||
var role = new Role();
|
||||
|
||||
// 角色数据
|
||||
role.RoleModel.id = 1;
|
||||
role.RoleModel.name = "测试角色";
|
||||
|
||||
// 角色初始战斗属性
|
||||
role.RoleBaseModel.power = 10;
|
||||
role.RoleBaseModel.agile = 10;
|
||||
role.RoleBaseModel.physical = 10;
|
||||
|
||||
// 角色等级数据
|
||||
role.RoleLevel.lv = 1; // + 5 hp
|
||||
|
||||
// 角色职业数据
|
||||
role.RoleJobModel.id = 1; // + 2 power, + 10 ad
|
||||
|
||||
// 角色基础属性绑定到界面上显示
|
||||
VM.add(role.RoleModel.vm, "role");
|
||||
|
||||
// 角色信息界面显示对象
|
||||
var role_attr = ViewUtil.createPrefabNode("game/battle/role_attr");
|
||||
role_attr.parent = engine.gui.root;
|
||||
|
||||
// 角色动画显示对象
|
||||
role.load();
|
||||
role.RoleView.node.parent = engine.gui.root;
|
||||
role.RoleView.node.setPosition(0, -200, 0);
|
||||
|
||||
e.AccountModel.role = role;
|
||||
}
|
||||
|
||||
/** 设置本地存储的用户标识 */
|
||||
setLocalStorage(uid: number) {
|
||||
SqlUtil.setUser(uid);
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
/** 网络配置 */
|
||||
class NetConfig {
|
||||
public gameIp !: string;
|
||||
public gamePort !: string;
|
||||
public gameIp: string = "192.168.1.150";
|
||||
public gamePort: string = "9587";
|
||||
public dbid!: number;
|
||||
public sdkUid!: string;
|
||||
public serverId!: number;
|
||||
|
||||
@@ -15,11 +15,11 @@ export class NetGameTips implements INetworkTips {
|
||||
connectTips(isShow: boolean): void {
|
||||
if (isShow) {
|
||||
Logger.logNet("游戏服务器正在连接");
|
||||
// tips.netInstableOpen();
|
||||
tips.netInstableOpen();
|
||||
}
|
||||
else {
|
||||
Logger.logNet("游戏服务器连接成功");
|
||||
// tips.netInstableClose();
|
||||
tips.netInstableClose();
|
||||
Message.dispatchEvent(GameEvent.GameServerConnected);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,15 +49,15 @@ export class Demo extends Component {
|
||||
|
||||
/** 多语言切换 */
|
||||
private btn_language(event: EventTouch, data: any) {
|
||||
console.log(engine.i18n.getLangByID("notify_show"));
|
||||
console.log(engine.language.getLangByID("notify_show"));
|
||||
|
||||
if (this.lang == false) {
|
||||
this.lang = true;
|
||||
engine.i18n.setLanguage("zh", () => { });
|
||||
engine.language.setLanguage("zh", () => { });
|
||||
}
|
||||
else {
|
||||
this.lang = false;
|
||||
engine.i18n.setLanguage("en", () => { });
|
||||
engine.language.setLanguage("en", () => { });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,18 +10,14 @@ import { AsyncQueue, NextFunction } from "../../core/common/queue/AsyncQueue";
|
||||
import { engine } from "../../core/Engine";
|
||||
import { UICallbacks } from "../../core/gui/layer/Defines";
|
||||
import { ecs } from "../../core/libs/ECS";
|
||||
import { JsonUtil } from "../../core/utils/JsonUtil";
|
||||
import { config } from "../common/config/Config";
|
||||
import { UIID } from "../common/config/GameUIConfig";
|
||||
import { RoleJobModelComp } from "../role/model/RoleJobModelComp";
|
||||
import { RoleTableLevelUp } from "../role/model/RoleTableLevelUp";
|
||||
import { LoadingViewComp } from "./view/LoadingViewComp";
|
||||
|
||||
/**
|
||||
* 游戏进入初始化模块
|
||||
* 1、热更新
|
||||
* 2、加载默认资源
|
||||
* 3、转到帐号模块
|
||||
*/
|
||||
export class Initialize extends ecs.Entity {
|
||||
LoadingView!: LoadingViewComp;
|
||||
@@ -39,19 +35,24 @@ export class Initialize extends ecs.Entity {
|
||||
|
||||
// 加载多语言包
|
||||
this.loadLanguage(queue);
|
||||
// 加载TTF字库(可选项)
|
||||
this.loadFont(queue);
|
||||
// 加载公共资源
|
||||
this.loadCommon(queue);
|
||||
// 加载自定义静态表
|
||||
// 加载自定义资源
|
||||
this.loadCustom(queue);
|
||||
// 加载游戏主界面资源
|
||||
// 加载游戏内容加载进度提示界面
|
||||
this.onComplete(queue);
|
||||
|
||||
queue.play();
|
||||
}
|
||||
|
||||
/** 加载化语言包 */
|
||||
/** 加载自定义内容(可选) */
|
||||
private loadCustom(queue: AsyncQueue) {
|
||||
queue.push(async (next: NextFunction, params: any, args: any) => {
|
||||
resLoader.load("language/font/" + engine.language.current, next);
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载化语言包(可选) */
|
||||
private loadLanguage(queue: AsyncQueue) {
|
||||
queue.push((next: NextFunction, params: any, args: any) => {
|
||||
// 设置默认语言
|
||||
@@ -63,35 +64,20 @@ export class Initialize extends ecs.Entity {
|
||||
}
|
||||
|
||||
// 设置语言包路径
|
||||
engine.i18n.setAssetsPath(config.game.languagePathJson, config.game.languagePathTexture);
|
||||
engine.language.setAssetsPath(config.game.languagePathJson, config.game.languagePathTexture);
|
||||
|
||||
// 加载语言包资源
|
||||
engine.i18n.setLanguage(lan!, next);
|
||||
engine.language.setLanguage(lan!, next);
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载TTF字库(可选项) */
|
||||
private loadFont(queue: AsyncQueue) {
|
||||
queue.push((next: NextFunction, params: any, args: any) => {
|
||||
resLoader.load("language/font/" + engine.i18n.currentLanguage, next);
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载公共资源(公用提示、窗口等自定义文件体积交小的资源) */
|
||||
/** 加载公共资源(必备) */
|
||||
private loadCommon(queue: AsyncQueue) {
|
||||
queue.push((next: NextFunction, params: any, args: any) => {
|
||||
resLoader.loadDir("common", next);
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载自定义静态表 */
|
||||
private loadCustom(queue: AsyncQueue) {
|
||||
queue.push(async (next: NextFunction, params: any, args: any) => {
|
||||
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载完成进入游戏内容加载界面 */
|
||||
private onComplete(queue: AsyncQueue) {
|
||||
queue.complete = () => {
|
||||
@@ -101,6 +87,8 @@ export class Initialize extends ecs.Entity {
|
||||
this.add(comp);
|
||||
}
|
||||
};
|
||||
|
||||
// 界面管理 - 打开游戏内容资源加载进度提示界面
|
||||
engine.gui.open(UIID.Loading, null, uic);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,10 +4,8 @@
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-01-24 16:12:49
|
||||
*/
|
||||
|
||||
import { _decorator } from "cc";
|
||||
import { resLoader } from "../../../core/common/loader/ResLoader";
|
||||
import { Logger } from "../../../core/common/log/Logger";
|
||||
import { engine } from "../../../core/Engine";
|
||||
import { ecs } from "../../../core/libs/ECS";
|
||||
import { JsonUtil } from "../../../core/utils/JsonUtil";
|
||||
@@ -20,29 +18,41 @@ import { RoleTableLevelUp } from "../../role/model/RoleTableLevelUp";
|
||||
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
/** 游戏资源加载 */
|
||||
@ccclass('LoadingViewComp')
|
||||
@ecs.register('LoadingView', false)
|
||||
export class LoadingViewComp extends CCVMParentComp {
|
||||
protected data: any = {
|
||||
/** VM 组件绑定数据 */
|
||||
data: any = {
|
||||
/** 加载资源当前进度 */
|
||||
finished: 0,
|
||||
/** 加载资源最大进度 */
|
||||
total: 0,
|
||||
progress: ""
|
||||
/** 加载资源进度比例值 */
|
||||
progress: "",
|
||||
/** 加载流程中提示文本 */
|
||||
prompt: ""
|
||||
};
|
||||
|
||||
private progress: number = 0;
|
||||
|
||||
reset(): void {
|
||||
// 获取用户信息的多语言提示文本
|
||||
this.data.prompt = engine.language.getLangByID("loading_load_player");
|
||||
|
||||
// 关闭加载界面
|
||||
engine.gui.remove(UIID.Loading);
|
||||
engine.gui.open(UIID.Demo);
|
||||
|
||||
// 进入游戏主界面
|
||||
var module = ecs.getSingleton(SingletonModuleComp);
|
||||
module.account = new Account();
|
||||
module.account.requestLoadPlayer();
|
||||
|
||||
// 释放加载界面资源
|
||||
resLoader.releaseDir("loading");
|
||||
|
||||
Logger.logView("释放loading资源");
|
||||
// 初始化角色模块
|
||||
var module = ecs.getSingleton(SingletonModuleComp);
|
||||
module.account = new Account();
|
||||
module.account.connect();
|
||||
|
||||
// 打开DEMO界面
|
||||
engine.gui.open(UIID.Demo);
|
||||
}
|
||||
|
||||
start() {
|
||||
@@ -56,8 +66,11 @@ export class LoadingViewComp extends CCVMParentComp {
|
||||
this.loadGameRes();
|
||||
}
|
||||
|
||||
/** 加载游戏本地JSON数据 */
|
||||
/** 加载游戏本地JSON数据(自定义内容) */
|
||||
private loadLocalJson() {
|
||||
// 加载游戏本地JSON数据的多语言提示文本
|
||||
this.data.prompt = engine.language.getLangByID("loading_load_json");
|
||||
|
||||
return new Promise(async (resolve, reject) => {
|
||||
await JsonUtil.loadAsync(RoleJobModelComp.TableName);
|
||||
await JsonUtil.loadAsync(RoleTableLevelUp.TableName);
|
||||
@@ -65,11 +78,15 @@ export class LoadingViewComp extends CCVMParentComp {
|
||||
});
|
||||
}
|
||||
|
||||
/** 加载游戏预制、纹理等资源 */
|
||||
/** 加载初始游戏内容资源 */
|
||||
private loadGameRes() {
|
||||
// 加载初始游戏内容资源的多语言提示文本
|
||||
this.data.prompt = engine.language.getLangByID("loading_load_game");
|
||||
|
||||
resLoader.loadDir("game", this.onProgressCallback.bind(this), this.onCompleteCallback.bind(this));
|
||||
}
|
||||
|
||||
/** 加载进度事件 */
|
||||
private onProgressCallback(finished: number, total: number, item: any) {
|
||||
this.data.finished = finished;
|
||||
this.data.total = total;
|
||||
@@ -81,6 +98,7 @@ export class LoadingViewComp extends CCVMParentComp {
|
||||
}
|
||||
}
|
||||
|
||||
/** 加载完成事件 */
|
||||
private onCompleteCallback() {
|
||||
this.ent.remove(LoadingViewComp);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user