diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..88927d3
Binary files /dev/null and b/.DS_Store differ
diff --git a/AGENTS.md b/AGENTS.md
index f432cd6..d42b4f8 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -19,60 +19,7 @@ Git 历史采用 Conventional Commits,且摘要多为中文,例如 `feat:
# Memory Context
-# [mp-xieyingeng] recent context, 2026-04-24 9:39pm GMT+8
+# [mp-xieyingeng] recent context, 2026-04-26 3:57pm GMT+8
-Legend: 🎯session 🔴bugfix 🟣feature 🔄refactor ✅change 🔵discovery ⚖️decision 🚨security_alert 🔐security_note
-Format: ID TIME TYPE TITLE
-Fetch details: get_observations([IDs]) | Search: mem-search skill
-
-Stats: 45 obs (10,437t read) | 520,499t work | 98% savings
-
-### Apr 24, 2026
-101 8:46a 🟣 Live label display format updated to X/Y format
-114 6:40p 🟣 Dynamic Input Layout Initialization in PageLevel Prefab
-115 6:41p 🟣 Dynamic Punch Block Layout for PageLevel.prefab
-116 " 🔵 Layout Component Configuration for Input and Punch Blocks
-119 6:42p 🟣 Dynamic Input Blocks and Punch Layout System Implemented
-121 " 🟣 PageLevel Prefab Updated with punchLayout Property
-122 " 🔄 Cleanup After Dynamic Block Refactoring
-124 " ✅ TypeScript Compilation Check in Progress
-126 6:43p ✅ TypeScript Compilation Check Extended
-127 " 🔄 Complete Diff of PageLevel.ts Dynamic Block System
-128 " 🔵 PageLevel.prefab Changes Not Persisted
-129 6:44p 🟣 PageLevel Prefab Correctly Updated with punchLayout
-130 " ✅ TypeScript Compilation Blocked - Permission Required
-133 6:45p 🔄 Extracted getPunchBlockLabel Helper Method
-134 " 🔄 Template Node Hiding Logic Improved
-136 6:48p ⚖️ TypeScript diagnostics disabled, using IDE/linter instead
-138 " 🔄 PageLevel 输入方式从单框改为逐字格子
-139 " 🔄 谐音梗展示从 Label 改为动态 Block 节点
-140 " ✅ PageLevel.prefab 布局位置微调
-165 8:08p 🟣 PageLevel input layout simplified to single-character boxes with auto-distribution
-167 8:09p 🔵 PageLevel.ts input block structure and callback stubs discovered
-168 " 🟣 Auto-distribute characters across input boxes and auto-submit on completion implemented
-169 " 🔴 PageLevel.ts node cleanup now calls removeFromParent before destroy
-170 8:10p 🔄 PageLevel.ts full diff: single EditBox replaced with per-character block system
-171 " 🔴 distributeInputText() wrapped in try/finally to guarantee flag reset
-179 8:23p ✅ Game011_3.ttf font relocated from resources/ to dedicated fonts/ bundle directory
-180 " 🟣 PageLoading.ts now loads fonts as a dynamic bundle after level data, before UI
-181 " 🔄 AssetManager import switched to type-only import in PageLoading.ts
-182 8:31p 🟣 PageLevel input UX improvement: full-string editing support
-183 " 🟣 PageLevel input UX: full-string editing implemented
-186 8:34p 🔴 PageLevel: clear input text on wrong answer
-187 8:35p 🟣 PageLevel: delay pass modal to show punchline
-189 8:36p 🔄 PageLevel: level completion reporting made fire-and-forget
-191 8:45p 🔴 PageLevel: punchline block cleanup improved
-192 8:46p 🟣 PageLevel.ts TitleLevel Label variable reserved
-193 8:47p 🔵 PageLevel.ts level number tracking mechanism discovered
-195 " 🟣 PageLevel.ts TitleLevel dynamic label update implemented
-196 8:53p 🔵 PageLevel punchline not updated from enterLevel API
-198 " 🔴 LevelDataManager updateLevelDetails now includes punchline
-199 " 🔴 PageLevel punchline flow and empty state layout fixed
-200 8:54p 🔴 LevelDataManager preserves existing punchline when enter returns null
-203 9:06p 🟣 PageLevel.ts 新增图片描述标签绑定字段
-205 9:07p 🟣 PageLevel.ts 图片描述标签字段对接完成
-206 9:09p ✅ PageLevel.ts 回退图片描述标签字段命名
-208 9:11p 🟣 LevelDataManager 增加图片描述字段存储
-
-Access 520k tokens of past work via get_observations([IDs]) or mem-search skill.
+No previous sessions found.
\ No newline at end of file
diff --git a/assets/.DS_Store b/assets/.DS_Store
new file mode 100644
index 0000000..9c94ff5
Binary files /dev/null and b/assets/.DS_Store differ
diff --git a/assets/prefabs/PageLevel.ts b/assets/prefabs/PageLevel.ts
index 9547cb0..d3c1cc1 100644
--- a/assets/prefabs/PageLevel.ts
+++ b/assets/prefabs/PageLevel.ts
@@ -5,11 +5,13 @@ import { StorageManager } from 'db://assets/scripts/utils/StorageManager';
import { StaminaManager } from 'db://assets/scripts/utils/StaminaManager';
import { WxSDK } from 'db://assets/scripts/utils/WxSDK';
import { LevelDataManager } from 'db://assets/scripts/utils/LevelDataManager';
+import { AuthManager } from 'db://assets/scripts/utils/AuthManager';
import { RuntimeLevelConfig } from 'db://assets/scripts/types/LevelTypes';
import { ToastManager } from 'db://assets/scripts/utils/ToastManager';
import { ShareManager } from 'db://assets/scripts/utils/ShareManager';
import { PassModal } from 'db://assets/prefabs/PassModal';
import { StaminaInfo } from 'db://assets/scripts/types/ApiTypes';
+import { AchievementTitleManager } from 'db://assets/scripts/utils/AchievementTitleManager';
const { ccclass, property } = _decorator;
/**
@@ -152,6 +154,9 @@ export class PageLevel extends BaseView {
/** 通关弹窗实例 */
private _passModalNode: Node | null = null;
+ /** 本次通关弹窗使用的已通关数量 */
+ private _passModalCompletedLevelCount: number | null = null;
+
/** 是否处于分享挑战模式 */
private _isShareMode: boolean = false;
@@ -1149,15 +1154,25 @@ export class PageLevel extends BaseView {
private reportLevelCompleted(levelId: string, timeSpent: number): void {
if (!this._isShareMode) {
// 标记关卡为已通关(本地缓存),通关上报并行执行,不阻塞包袱展示节奏
+ const wasCompleted = LevelDataManager.instance.isLevelCompleted(this.currentLevelIndex);
+ if (!wasCompleted) {
+ AuthManager.instance.addCompletedLevelCount();
+ }
+ this._passModalCompletedLevelCount = AuthManager.instance.completedLevelCount;
LevelDataManager.instance.markLevelCompleted(this.currentLevelIndex);
void StaminaManager.instance.completeLevel(levelId, timeSpent).then((result) => {
if (result) {
+ if (!result.firstClear && !wasCompleted) {
+ AuthManager.instance.addCompletedLevelCount(-1);
+ this._passModalCompletedLevelCount = AuthManager.instance.completedLevelCount;
+ }
console.log(`[PageLevel] 通关上报成功,首次通关: ${result.firstClear}`);
}
});
return;
}
+ this._passModalCompletedLevelCount = null;
// fire-and-forget: errors are logged inside reportLevelProgress
void ShareManager.instance.reportLevelProgress(levelId, true, timeSpent);
}
@@ -1199,7 +1214,10 @@ export class PageLevel extends BaseView {
// 获取 PassModal 组件并设置回调
const passModal = modalNode.getComponent(PassModal);
if (passModal) {
- passModal.setParams({ levelIndex: this.currentLevelIndex + 1 });
+ passModal.setParams({
+ levelIndex: this.currentLevelIndex + 1,
+ titleInfo: AchievementTitleManager.getTitleInfo(this._getPassModalCompletedLevelCount())
+ });
passModal.setCallbacks({
onNextLevel: () => {
this._closePassModal();
@@ -1218,6 +1236,10 @@ export class PageLevel extends BaseView {
console.log('[PageLevel] 显示通关弹窗');
}
+ private _getPassModalCompletedLevelCount(): number {
+ return this._passModalCompletedLevelCount ?? AuthManager.instance.completedLevelCount;
+ }
+
/**
* 关闭通关弹窗
*/
diff --git a/assets/prefabs/PassModal.prefab b/assets/prefabs/PassModal.prefab
index 5ccaa22..46865ff 100644
--- a/assets/prefabs/PassModal.prefab
+++ b/assets/prefabs/PassModal.prefab
@@ -28,32 +28,23 @@
"__id__": 18
},
{
- "__id__": 26
- },
- {
- "__id__": 32
- },
- {
- "__id__": 38
- },
- {
- "__id__": 54
+ "__id__": 78
}
],
"_active": true,
"_components": [
{
- "__id__": 70
+ "__id__": 126
},
{
- "__id__": 72
+ "__id__": 128
},
{
- "__id__": 74
+ "__id__": 130
}
],
"_prefab": {
- "__id__": 76
+ "__id__": 132
},
"_lpos": {
"__type__": "cc.Vec3",
@@ -182,13 +173,13 @@
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
- "r": 236,
- "g": 193,
- "b": 162,
+ "r": 255,
+ "g": 255,
+ "b": 255,
"a": 255
},
"_spriteFrame": {
- "__uuid__": "7d8f9b89-4fd1-4c9f-a3ab-38ec7cded7ca@f9941",
+ "__uuid__": "10047f2e-bf2c-46f0-ba98-6fc23cf7ea87@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
@@ -261,7 +252,7 @@
},
{
"__type__": "cc.Node",
- "_name": "Title",
+ "_name": "winBanner",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
@@ -285,8 +276,8 @@
},
"_lpos": {
"__type__": "cc.Vec3",
- "x": -169.899,
- "y": 618.714,
+ "x": 0,
+ "y": 654,
"z": 0
},
"_lrot": {
@@ -298,8 +289,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
- "x": 1,
- "y": 1,
+ "x": 0.7,
+ "y": 0.7,
"z": 1
},
"_mobility": 0,
@@ -326,8 +317,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 300,
- "height": 75.6
+ "width": 1131,
+ "height": 606
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -338,10 +329,10 @@
},
{
"__type__": "cc.CompPrefabInfo",
- "fileId": "6aZZXip+lKvrkP+3ufXo57"
+ "fileId": "53TS5jk8dJq7swejPSLC8t"
},
{
- "__type__": "cc.Label",
+ "__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
@@ -355,204 +346,6 @@
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
- "_color": {
- "__type__": "cc.Color",
- "r": 0,
- "g": 0,
- "b": 0,
- "a": 255
- },
- "_string": "恭喜过关!",
- "_horizontalAlign": 1,
- "_verticalAlign": 1,
- "_actualFontSize": 60,
- "_fontSize": 60,
- "_fontFamily": "Arial",
- "_lineHeight": 60,
- "_overflow": 0,
- "_enableWrapText": true,
- "_font": null,
- "_isSystemFontUsed": true,
- "_spacingX": 0,
- "_isItalic": false,
- "_isBold": false,
- "_isUnderline": false,
- "_underlineHeight": 2,
- "_cacheMode": 0,
- "_enableOutline": false,
- "_outlineColor": {
- "__type__": "cc.Color",
- "r": 0,
- "g": 0,
- "b": 0,
- "a": 255
- },
- "_outlineWidth": 2,
- "_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": ""
- },
- {
- "__type__": "cc.CompPrefabInfo",
- "fileId": "4bPFWyZpJA95VefJ1FerIw"
- },
- {
- "__type__": "cc.Widget",
- "_name": "",
- "_objFlags": 0,
- "__editorExtras__": {},
- "node": {
- "__id__": 10
- },
- "_enabled": true,
- "__prefab": {
- "__id__": 16
- },
- "_alignFlags": 0,
- "_target": null,
- "_left": 0,
- "_right": 0,
- "_top": 0,
- "_bottom": 0,
- "_horizontalCenter": 0,
- "_verticalCenter": 0,
- "_isAbsLeft": true,
- "_isAbsRight": true,
- "_isAbsTop": true,
- "_isAbsBottom": true,
- "_isAbsHorizontalCenter": true,
- "_isAbsVerticalCenter": true,
- "_originalWidth": 0,
- "_originalHeight": 0,
- "_alignMode": 2,
- "_lockFlags": 0,
- "_id": ""
- },
- {
- "__type__": "cc.CompPrefabInfo",
- "fileId": "66o2HImDpHAYV4he5tmiuX"
- },
- {
- "__type__": "cc.PrefabInfo",
- "root": {
- "__id__": 1
- },
- "asset": {
- "__id__": 0
- },
- "fileId": "9dwZrYU0RBEIWJB8enwRgc",
- "instance": null,
- "targetOverrides": null,
- "nestedPrefabInstanceRoots": null
- },
- {
- "__type__": "cc.Node",
- "_name": "IconLive",
- "_objFlags": 0,
- "__editorExtras__": {},
- "_parent": {
- "__id__": 1
- },
- "_children": [],
- "_active": true,
- "_components": [
- {
- "__id__": 19
- },
- {
- "__id__": 21
- },
- {
- "__id__": 23
- }
- ],
- "_prefab": {
- "__id__": 25
- },
- "_lpos": {
- "__type__": "cc.Vec3",
- "x": 137.815,
- "y": 619.585,
- "z": 0
- },
- "_lrot": {
- "__type__": "cc.Quat",
- "x": 0,
- "y": 0,
- "z": 0,
- "w": 1
- },
- "_lscale": {
- "__type__": "cc.Vec3",
- "x": 0.519,
- "y": 0.519,
- "z": 0.519
- },
- "_mobility": 0,
- "_layer": 1073741824,
- "_euler": {
- "__type__": "cc.Vec3",
- "x": 0,
- "y": 0,
- "z": 0
- },
- "_id": ""
- },
- {
- "__type__": "cc.UITransform",
- "_name": "",
- "_objFlags": 0,
- "__editorExtras__": {},
- "node": {
- "__id__": 18
- },
- "_enabled": true,
- "__prefab": {
- "__id__": 20
- },
- "_contentSize": {
- "__type__": "cc.Size",
- "width": 183,
- "height": 183
- },
- "_anchorPoint": {
- "__type__": "cc.Vec2",
- "x": 0.5,
- "y": 0.5
- },
- "_id": ""
- },
- {
- "__type__": "cc.CompPrefabInfo",
- "fileId": "adCkwK7YVPc4TT13/9y+QJ"
- },
- {
- "__type__": "cc.Sprite",
- "_name": "",
- "_objFlags": 0,
- "__editorExtras__": {},
- "node": {
- "__id__": 18
- },
- "_enabled": true,
- "__prefab": {
- "__id__": 22
- },
- "_customMaterial": null,
- "_srcBlendFactor": 2,
- "_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
@@ -561,7 +354,7 @@
"a": 255
},
"_spriteFrame": {
- "__uuid__": "1007bacb-29be-45cf-8dca-916a1fe37ed0@f9941",
+ "__uuid__": "4c29b5fc-64c2-4fbd-b220-a4388daebc0a@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
@@ -581,7 +374,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
- "fileId": "76AbognxxP1Khn01SIR39l"
+ "fileId": "86ksH6gxdCKrmt2q5oLd66"
},
{
"__type__": "cc.Widget",
@@ -589,17 +382,17 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 18
+ "__id__": 10
},
"_enabled": true,
"__prefab": {
- "__id__": 24
+ "__id__": 16
},
- "_alignFlags": 0,
+ "_alignFlags": 1,
"_target": null,
"_left": 0,
"_right": 0,
- "_top": 0,
+ "_top": 213.89999999999998,
"_bottom": 0,
"_horizontalCenter": 0,
"_verticalCenter": 0,
@@ -617,7 +410,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
- "fileId": "5cq10IWOJP070psEmWgOrO"
+ "fileId": "14byy2X51I5qjgLlPoX0Qr"
},
{
"__type__": "cc.PrefabInfo",
@@ -627,36 +420,43 @@
"asset": {
"__id__": 0
},
- "fileId": "b208eAXaNKQ76agOadOK/c",
+ "fileId": "6d7Kz8ywFL/qH6fCA8SpZq",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
- "_name": "Label",
+ "_name": "Main",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
"__id__": 1
},
- "_children": [],
+ "_children": [
+ {
+ "__id__": 19
+ },
+ {
+ "__id__": 25
+ }
+ ],
"_active": true,
"_components": [
{
- "__id__": 27
+ "__id__": 73
},
{
- "__id__": 29
+ "__id__": 75
}
],
"_prefab": {
- "__id__": 31
+ "__id__": 77
},
"_lpos": {
"__type__": "cc.Vec3",
- "x": 237.319,
- "y": 622.262,
+ "x": 0,
+ "y": 188,
"z": 0
},
"_lrot": {
@@ -682,22 +482,72 @@
},
"_id": ""
},
+ {
+ "__type__": "cc.Node",
+ "_name": "1_0022_Layer-19",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 18
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 20
+ },
+ {
+ "__id__": 22
+ }
+ ],
+ "_prefab": {
+ "__id__": 24
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.5,
+ "y": 0.5,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 26
+ "__id__": 19
},
"_enabled": true,
"__prefab": {
- "__id__": 28
+ "__id__": 21
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 57.0068359375,
- "height": 63
+ "width": 1297,
+ "height": 1004
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -708,75 +558,52 @@
},
{
"__type__": "cc.CompPrefabInfo",
- "fileId": "0740qRs3RNz5p57Y2m8zaF"
+ "fileId": "f96etSwpZDr5ClCjE/JErY"
},
{
- "__type__": "cc.Label",
+ "__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 26
+ "__id__": 19
},
"_enabled": true,
"__prefab": {
- "__id__": 30
+ "__id__": 23
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
- "r": 0,
- "g": 0,
- "b": 0,
+ "r": 255,
+ "g": 255,
+ "b": 255,
"a": 255
},
- "_string": "+1",
- "_horizontalAlign": 1,
- "_verticalAlign": 1,
- "_actualFontSize": 50,
- "_fontSize": 50,
- "_fontFamily": "Arial",
- "_lineHeight": 50,
- "_overflow": 0,
- "_enableWrapText": true,
- "_font": null,
- "_isSystemFontUsed": true,
- "_spacingX": 0,
- "_isItalic": false,
- "_isBold": false,
- "_isUnderline": false,
- "_underlineHeight": 2,
- "_cacheMode": 0,
- "_enableOutline": false,
- "_outlineColor": {
- "__type__": "cc.Color",
- "r": 0,
- "g": 0,
- "b": 0,
- "a": 255
+ "_spriteFrame": {
+ "__uuid__": "3ef3f86f-bc1f-49b7-a50f-0e8683cd2400@f9941",
+ "__expectedType__": "cc.SpriteFrame"
},
- "_outlineWidth": 2,
- "_enableShadow": false,
- "_shadowColor": {
- "__type__": "cc.Color",
- "r": 0,
- "g": 0,
- "b": 0,
- "a": 255
- },
- "_shadowOffset": {
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 1,
+ "_fillCenter": {
"__type__": "cc.Vec2",
- "x": 2,
- "y": 2
+ "x": 0,
+ "y": 0
},
- "_shadowBlur": 2,
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
- "fileId": "ccytoLetVEXJJyquCLYWtO"
+ "fileId": "cfmv5hTIlJ1aKa5Bhrh85x"
},
{
"__type__": "cc.PrefabInfo",
@@ -786,20 +613,87 @@
"asset": {
"__id__": 0
},
- "fileId": "c7ywe7ClhHqqVjazViWu66",
+ "fileId": "6bnvw8/mlCs6YJG9FDQbHI",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
- "_name": "test",
+ "_name": "TitlteLevel",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
- "__id__": 1
+ "__id__": 18
},
- "_children": [],
+ "_children": [
+ {
+ "__id__": 26
+ },
+ {
+ "__id__": 38
+ },
+ {
+ "__id__": 44
+ },
+ {
+ "__id__": 50
+ },
+ {
+ "__id__": 64
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 70
+ }
+ ],
+ "_prefab": {
+ "__id__": 72
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -483.155,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Bg",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 25
+ },
+ "_children": [
+ {
+ "__id__": 27
+ }
+ ],
"_active": true,
"_components": [
{
@@ -815,7 +709,57 @@
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
- "y": 127.633,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.7,
+ "y": 0.7,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Inner",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 26
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 28
+ },
+ {
+ "__id__": 30
+ }
+ ],
+ "_prefab": {
+ "__id__": 32
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 6.289,
"z": 0
},
"_lrot": {
@@ -847,16 +791,16 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 32
+ "__id__": 27
},
"_enabled": true,
"__prefab": {
- "__id__": 34
+ "__id__": 29
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 536,
- "height": 548
+ "width": 1150,
+ "height": 630
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -867,7 +811,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
- "fileId": "55vTgXt4JP440c14d4n0yq"
+ "fileId": "fbvOONn6RHZo9REpvINGEa"
},
{
"__type__": "cc.Sprite",
@@ -875,7 +819,93 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 32
+ "__id__": 27
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 31
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "02687761-81ab-42cb-b552-0db291d9ddd5@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "9do3BWT4NO76BCFgjGnufU"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "48A4T64nRG3a3NsMaixCu6",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 26
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 34
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1200,
+ "height": 700
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "49cXEjWi5OE7kmV6DywASz"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 26
},
"_enabled": true,
"__prefab": {
@@ -892,7 +922,143 @@
"a": 255
},
"_spriteFrame": {
- "__uuid__": "d46acd4d-66e2-423b-8015-334ff99dd9f1@f9941",
+ "__uuid__": "5b988a03-f6a3-498f-b68d-d3b5786b1879@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "e3ycOysLdJtoQReb2VoEiX"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "e0QO2KAw1IqZ2pHsX/E7PI",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "iconCrown",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 25
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 39
+ },
+ {
+ "__id__": 41
+ }
+ ],
+ "_prefab": {
+ "__id__": 43
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": -176.293,
+ "y": 120.83,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.4,
+ "y": 0.4,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 38
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 40
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 323,
+ "height": 293
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "bafR0Qxp9AopkdcgjQ0dL/"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 38
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 42
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "62df15c5-20eb-4ab2-9b63-32bfbcce435b@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
@@ -912,7 +1078,7 @@
},
{
"__type__": "cc.CompPrefabInfo",
- "fileId": "70w6BIY/1P/5gDj3+7X1dC"
+ "fileId": "625VPIJFdCdbodDJbxVb4a"
},
{
"__type__": "cc.PrefabInfo",
@@ -922,24 +1088,20 @@
"asset": {
"__id__": 0
},
- "fileId": "e3EX+B9GlNO7GvWnGUS3Zz",
+ "fileId": "e19XXoC+dFNoJHAu2LERyE",
"instance": null,
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
{
"__type__": "cc.Node",
- "_name": "NextLevelButton",
+ "_name": "LevelLabel",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
- "__id__": 1
+ "__id__": 25
},
- "_children": [
- {
- "__id__": 39
- }
- ],
+ "_children": [],
"_active": true,
"_components": [
{
@@ -947,21 +1109,15 @@
},
{
"__id__": 47
- },
- {
- "__id__": 49
- },
- {
- "__id__": 51
}
],
"_prefab": {
- "__id__": 53
+ "__id__": 49
},
"_lpos": {
"__type__": "cc.Vec3",
- "x": 0,
- "y": -355.718,
+ "x": 67.348,
+ "y": 114.888,
"z": 0
},
"_lrot": {
@@ -973,8 +1129,821 @@
},
"_lscale": {
"__type__": "cc.Vec3",
- "x": 1.931,
- "y": 1.931,
+ "x": 1,
+ "y": 1,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 44
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 46
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 320,
+ "height": 100.8
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a5m82FdP1IjICAynVqMeSj"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 44
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 48
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 133,
+ "b": 0,
+ "a": 237
+ },
+ "_string": "冷场小白1级",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 80,
+ "_fontSize": 80,
+ "_fontFamily": "Arial",
+ "_lineHeight": 80,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": false,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": false,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 2,
+ "_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": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "87UvTZK2xCrauwPzAEXvcW"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "f0XRSGPeNOnJpbeOSek6l4",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "ProgressBar",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 25
+ },
+ "_children": [
+ {
+ "__id__": 51
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 57
+ },
+ {
+ "__id__": 59
+ },
+ {
+ "__id__": 61
+ }
+ ],
+ "_prefab": {
+ "__id__": 63
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -28.804,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.5,
+ "y": 0.5,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Bar",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 50
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 52
+ },
+ {
+ "__id__": 54
+ }
+ ],
+ "_prefab": {
+ "__id__": 56
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": -469.666,
+ "y": 0,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 51
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 53
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 925,
+ "height": 121
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "3cvkw56wNDH4B2o1hDVEgW"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 51
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 55
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "929dfe4e-9eab-48f1-a87d-344d51f07402@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "911F8iibtGoLeJ/4Ms3lyc"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "b8RqHcznJN9ZkoCRyRYBcd",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 50
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 58
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 966,
+ "height": 164
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "e6um0VonZEYKWBd9Lvslex"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 50
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 60
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "c55e385b-97b7-4aa1-8888-cfd101e68f77@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "5cqZUQXr5JIYGv9K4lO+jn"
+ },
+ {
+ "__type__": "cc.ProgressBar",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 50
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 62
+ },
+ "_barSprite": {
+ "__id__": 54
+ },
+ "_mode": 0,
+ "_totalLength": 925,
+ "_progress": 0,
+ "_reverse": false,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "b6NC8UIO1A9btWhNPTv1Jc"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "8fkraBWkVJ2YARFKJCvLCx",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "ProgressLabel",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 25
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 65
+ },
+ {
+ "__id__": 67
+ }
+ ],
+ "_prefab": {
+ "__id__": 69
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -142.619,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 64
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 66
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 402.03125,
+ "height": 75.6
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "b2aKZTGYlMhI6wsmNN04ui"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 64
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 68
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 2,
+ "g": 46,
+ "b": 0,
+ "a": 255
+ },
+ "_string": "还差3题获得冷场小白2级",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 40,
+ "_fontSize": 40,
+ "_fontFamily": "Arial",
+ "_lineHeight": 60,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": false,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": false,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 2,
+ "_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": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "41/TdIwp9G6YHm0p+iDVhU"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "07Lu/V5KRJSbNym8GigBZD",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 25
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 71
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 100,
+ "height": 100
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "d9cUWND6VAL4ZSCaUHegzY"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "e6WHqfIZBP5IxqNc9mH9Cw",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 18
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 74
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 100,
+ "height": 100
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "0eGrnm/X5MY6yqCDJc7UDM"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 18
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 76
+ },
+ "_alignFlags": 1,
+ "_target": null,
+ "_left": 0,
+ "_right": 0,
+ "_top": 842,
+ "_bottom": 0,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "6cPatOr6FOaK/Q/CPeqqPG"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "fb1frr899GUK+NG56I46nQ",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "BottomLayout",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 1
+ },
+ "_children": [
+ {
+ "__id__": 79
+ },
+ {
+ "__id__": 99
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 121
+ },
+ {
+ "__id__": 123
+ }
+ ],
+ "_prefab": {
+ "__id__": 125
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -825.392,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "NextLevelButton",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 78
+ },
+ "_children": [
+ {
+ "__id__": 80
+ },
+ {
+ "__id__": 86
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 92
+ },
+ {
+ "__id__": 94
+ },
+ {
+ "__id__": 96
+ }
+ ],
+ "_prefab": {
+ "__id__": 98
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 130.29,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.6,
+ "y": 0.6,
"z": 1.931
},
"_mobility": 0,
@@ -993,25 +1962,25 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
- "__id__": 38
+ "__id__": 79
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 40
+ "__id__": 81
},
{
- "__id__": 42
+ "__id__": 83
}
],
"_prefab": {
- "__id__": 44
+ "__id__": 85
},
"_lpos": {
"__type__": "cc.Vec3",
- "x": -3.567,
- "y": 2.675,
+ "x": -53.26,
+ "y": 5.505,
"z": 0
},
"_lrot": {
@@ -1043,16 +2012,16 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 39
+ "__id__": 80
},
"_enabled": true,
"__prefab": {
- "__id__": 41
+ "__id__": 82
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 120,
- "height": 50.4
+ "width": 250,
+ "height": 136
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1071,11 +2040,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 39
+ "__id__": 80
},
"_enabled": true,
"__prefab": {
- "__id__": 43
+ "__id__": 84
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1087,32 +2056,35 @@
"b": 255,
"a": 255
},
- "_string": "下一关",
+ "_string": "下一题",
"_horizontalAlign": 1,
"_verticalAlign": 1,
- "_actualFontSize": 40,
- "_fontSize": 40,
+ "_actualFontSize": 80,
+ "_fontSize": 80,
"_fontFamily": "Arial",
- "_lineHeight": 40,
+ "_lineHeight": 100,
"_overflow": 0,
"_enableWrapText": true,
- "_font": null,
- "_isSystemFontUsed": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
- "_isBold": false,
+ "_isBold": true,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
- "_enableOutline": false,
+ "_enableOutline": true,
"_outlineColor": {
"__type__": "cc.Color",
- "r": 0,
- "g": 0,
- "b": 0,
+ "r": 179,
+ "g": 127,
+ "b": 1,
"a": 255
},
- "_outlineWidth": 2,
+ "_outlineWidth": 5,
"_enableShadow": false,
"_shadowColor": {
"__type__": "cc.Color",
@@ -1146,22 +2118,158 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
+ {
+ "__type__": "cc.Node",
+ "_name": "flatIconNext",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 79
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 87
+ },
+ {
+ "__id__": 89
+ }
+ ],
+ "_prefab": {
+ "__id__": 91
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 166.74,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.2,
+ "y": 0.2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 38
+ "__id__": 86
},
"_enabled": true,
"__prefab": {
- "__id__": 46
+ "__id__": 88
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 306,
- "height": 77
+ "width": 375,
+ "height": 455
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "68H5/vUiFNvJ4qpb1cqcvR"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 86
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 90
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "1c8a9e95-7b00-4e59-a0a2-72a4aa97c03c@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 1,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "4aSUfdWmlKLYWhoRYkSOTy"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "87VwfP7qZJEbfhRwQacMX+",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 79
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 93
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 800,
+ "height": 234
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1180,11 +2288,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 38
+ "__id__": 79
},
"_enabled": true,
"__prefab": {
- "__id__": 48
+ "__id__": 95
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1197,12 +2305,12 @@
"a": 255
},
"_spriteFrame": {
- "__uuid__": "e1267c1b-ceb0-4483-b36d-bc9cb4d2fd26@f9941",
+ "__uuid__": "ba58112d-788c-465d-a2f3-46b468026d03@f9941",
"__expectedType__": "cc.SpriteFrame"
},
- "_type": 0,
+ "_type": 1,
"_fillType": 0,
- "_sizeMode": 1,
+ "_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
@@ -1225,11 +2333,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 38
+ "__id__": 79
},
"_enabled": true,
"__prefab": {
- "__id__": 50
+ "__id__": 97
},
"clickEvents": [],
"_interactable": true,
@@ -1275,42 +2383,6 @@
"__type__": "cc.CompPrefabInfo",
"fileId": "a6CBaO3IxAC7cOP/84NjPI"
},
- {
- "__type__": "cc.Widget",
- "_name": "",
- "_objFlags": 0,
- "__editorExtras__": {},
- "node": {
- "__id__": 38
- },
- "_enabled": true,
- "__prefab": {
- "__id__": 52
- },
- "_alignFlags": 4,
- "_target": null,
- "_left": 0,
- "_right": 0,
- "_top": 0,
- "_bottom": 649.9385,
- "_horizontalCenter": 0,
- "_verticalCenter": 0,
- "_isAbsLeft": true,
- "_isAbsRight": true,
- "_isAbsTop": true,
- "_isAbsBottom": true,
- "_isAbsHorizontalCenter": true,
- "_isAbsVerticalCenter": true,
- "_originalWidth": 0,
- "_originalHeight": 0,
- "_alignMode": 2,
- "_lockFlags": 0,
- "_id": ""
- },
- {
- "__type__": "cc.CompPrefabInfo",
- "fileId": "bf7jRdFgVArq5lB0wo9+tz"
- },
{
"__type__": "cc.PrefabInfo",
"root": {
@@ -1330,35 +2402,38 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
- "__id__": 1
+ "__id__": 78
},
"_children": [
{
- "__id__": 55
+ "__id__": 100
+ },
+ {
+ "__id__": 106
}
],
"_active": true,
"_components": [
{
- "__id__": 61
+ "__id__": 112
},
{
- "__id__": 63
+ "__id__": 114
},
{
- "__id__": 65
+ "__id__": 116
},
{
- "__id__": 67
+ "__id__": 118
}
],
"_prefab": {
- "__id__": 69
+ "__id__": 120
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
- "y": -569.771,
+ "y": -49.916,
"z": 0
},
"_lrot": {
@@ -1370,8 +2445,8 @@
},
"_lscale": {
"__type__": "cc.Vec3",
- "x": 1.931,
- "y": 1.931,
+ "x": 0.6,
+ "y": 0.6,
"z": 1.931
},
"_mobility": 0,
@@ -1390,24 +2465,24 @@
"_objFlags": 0,
"__editorExtras__": {},
"_parent": {
- "__id__": 54
+ "__id__": 99
},
"_children": [],
"_active": true,
"_components": [
{
- "__id__": 56
+ "__id__": 101
},
{
- "__id__": 58
+ "__id__": 103
}
],
"_prefab": {
- "__id__": 60
+ "__id__": 105
},
"_lpos": {
"__type__": "cc.Vec3",
- "x": -3.567,
+ "x": 82.738,
"y": 2.675,
"z": 0
},
@@ -1440,16 +2515,16 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 55
+ "__id__": 100
},
"_enabled": true,
"__prefab": {
- "__id__": 57
+ "__id__": 102
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 160,
- "height": 50.4
+ "width": 330,
+ "height": 136
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1468,11 +2543,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 55
+ "__id__": 100
},
"_enabled": true,
"__prefab": {
- "__id__": 59
+ "__id__": 104
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1484,32 +2559,35 @@
"b": 255,
"a": 255
},
- "_string": "邀请好友",
+ "_string": "考考好友",
"_horizontalAlign": 1,
"_verticalAlign": 1,
- "_actualFontSize": 40,
- "_fontSize": 40,
+ "_actualFontSize": 80,
+ "_fontSize": 80,
"_fontFamily": "Arial",
- "_lineHeight": 40,
+ "_lineHeight": 100,
"_overflow": 0,
"_enableWrapText": true,
- "_font": null,
- "_isSystemFontUsed": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
"_spacingX": 0,
"_isItalic": false,
- "_isBold": false,
+ "_isBold": true,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
- "_enableOutline": false,
+ "_enableOutline": true,
"_outlineColor": {
"__type__": "cc.Color",
- "r": 0,
- "g": 0,
- "b": 0,
+ "r": 72,
+ "g": 158,
+ "b": 35,
"a": 255
},
- "_outlineWidth": 2,
+ "_outlineWidth": 5,
"_enableShadow": false,
"_shadowColor": {
"__type__": "cc.Color",
@@ -1543,22 +2621,158 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
+ {
+ "__type__": "cc.Node",
+ "_name": "flatIconShare",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 99
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 107
+ },
+ {
+ "__id__": 109
+ }
+ ],
+ "_prefab": {
+ "__id__": 111
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": -158.227,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.2,
+ "y": 0.2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 54
+ "__id__": 106
},
"_enabled": true,
"__prefab": {
- "__id__": 62
+ "__id__": 108
},
"_contentSize": {
"__type__": "cc.Size",
- "width": 306,
- "height": 77
+ "width": 468,
+ "height": 490
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "6eAwh4c9BJoZ6+CAgVqtha"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 106
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 110
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "b9bec232-3d37-48a0-9ca8-62aab6c4083b@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 1,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "fc1QGrlPxDv7+Ci9hxE5VC"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "76b9IsEpZFaJAZbihEwpAt",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 99
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 113
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 800,
+ "height": 234
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@@ -1577,11 +2791,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 54
+ "__id__": 99
},
"_enabled": true,
"__prefab": {
- "__id__": 64
+ "__id__": 115
},
"_customMaterial": null,
"_srcBlendFactor": 2,
@@ -1594,12 +2808,12 @@
"a": 255
},
"_spriteFrame": {
- "__uuid__": "e1267c1b-ceb0-4483-b36d-bc9cb4d2fd26@f9941",
+ "__uuid__": "f87d228a-c520-499a-bf3a-e66cbb6def64@f9941",
"__expectedType__": "cc.SpriteFrame"
},
"_type": 0,
"_fillType": 0,
- "_sizeMode": 1,
+ "_sizeMode": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
@@ -1622,11 +2836,11 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 54
+ "__id__": 99
},
"_enabled": true,
"__prefab": {
- "__id__": 66
+ "__id__": 117
},
"clickEvents": [],
"_interactable": true,
@@ -1678,18 +2892,18 @@
"_objFlags": 0,
"__editorExtras__": {},
"node": {
- "__id__": 54
+ "__id__": 99
},
"_enabled": true,
"__prefab": {
- "__id__": 68
+ "__id__": 119
},
"_alignFlags": 4,
"_target": null,
"_left": 0,
"_right": 0,
"_top": 0,
- "_bottom": 435.8855000000001,
+ "_bottom": -70.116,
"_horizontalCenter": 0,
"_verticalCenter": 0,
"_isAbsLeft": true,
@@ -1721,6 +2935,83 @@
"targetOverrides": null,
"nestedPrefabInstanceRoots": null
},
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 78
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 122
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 100,
+ "height": 100
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a2VML3zTtJ3qwMphX9yETg"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 78
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 124
+ },
+ "_alignFlags": 4,
+ "_target": null,
+ "_left": 0,
+ "_right": 0,
+ "_top": 0,
+ "_bottom": 204.60799999999995,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "0fJ0TP3ENLgZSWi7smEjVC"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "83PTCFRPtHLZMW+if9kviz",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
{
"__type__": "cc.UITransform",
"_name": "",
@@ -1731,7 +3022,7 @@
},
"_enabled": true,
"__prefab": {
- "__id__": 71
+ "__id__": 127
},
"_contentSize": {
"__type__": "cc.Size",
@@ -1759,7 +3050,7 @@
},
"_enabled": false,
"__prefab": {
- "__id__": 73
+ "__id__": 129
},
"_alignFlags": 45,
"_target": null,
@@ -1795,16 +3086,38 @@
},
"_enabled": true,
"__prefab": {
- "__id__": 75
+ "__id__": 131
},
+ "animationNodes": [
+ {
+ "__id__": 10
+ },
+ {
+ "__id__": 18
+ },
+ {
+ "__id__": 78
+ }
+ ],
+ "backdropNode": {
+ "__id__": 2
+ },
+ "openAnimationEnabled": true,
+ "openAnimationDuration": 0.36,
"nextLevelButton": {
- "__id__": 38
+ "__id__": 79
},
"shareButton": {
- "__id__": 54
+ "__id__": 99
},
- "tipLabel": {
- "__id__": 29
+ "titleLevelLabel": {
+ "__id__": 47
+ },
+ "titleProgressBar": {
+ "__id__": 61
+ },
+ "progressLabel": {
+ "__id__": 67
},
"successAudio": {
"__uuid__": "45d1f0b7-d9d7-41d8-84b2-7abad9304148",
@@ -1828,4 +3141,4 @@
"instance": null,
"targetOverrides": null
}
-]
\ No newline at end of file
+]
diff --git a/assets/prefabs/PassModal.ts b/assets/prefabs/PassModal.ts
index a3efd9a..e775f0f 100644
--- a/assets/prefabs/PassModal.ts
+++ b/assets/prefabs/PassModal.ts
@@ -1,5 +1,5 @@
-import { _decorator, Node, Label, AudioClip, AudioSource, view, UITransform, Size } from 'cc';
-import { BaseView } from 'db://assets/scripts/core/BaseView';
+import { _decorator, Node, Label, AudioClip, AudioSource, view, UITransform, Size, ProgressBar } from 'cc';
+import { BaseModal } from 'db://assets/scripts/core/BaseModal';
import { WxSDK } from 'db://assets/scripts/utils/WxSDK';
const { ccclass, property } = _decorator;
@@ -13,12 +13,23 @@ export interface PassModalCallbacks {
onShare?: () => void;
}
+export interface PassModalTitleInfo {
+ titleText?: string;
+ nextTitleProgress?: number;
+ progressText?: string;
+}
+
+interface PassModalParams {
+ levelIndex?: number;
+ titleInfo?: PassModalTitleInfo;
+}
+
/**
* 通关弹窗组件
- * 继承 BaseView,显示通关成功弹窗,提供"下一关"和"分享给好友"两个按钮
+ * 继承 BaseModal,显示通关成功弹窗,提供"下一关"和"分享给好友"两个按钮
*/
@ccclass('PassModal')
-export class PassModal extends BaseView {
+export class PassModal extends BaseModal {
/** 静态常量:弹窗层级 */
public static readonly MODAL_Z_INDEX = 999;
@@ -30,9 +41,17 @@ export class PassModal extends BaseView {
@property(Node)
shareButton: Node | null = null;
- /** 提示Label(如 恭喜通关) */
+ /** 称号文字 */
@property(Label)
- tipLabel: Label | null = null;
+ titleLevelLabel: Label | null = null;
+
+ /** 距离下一个称号的进度 */
+ @property(ProgressBar)
+ titleProgressBar: ProgressBar | null = null;
+
+ /** 进度提示文案 */
+ @property(Label)
+ progressLabel: Label | null = null;
/** 通关音效 */
@property(AudioClip)
@@ -44,6 +63,21 @@ export class PassModal extends BaseView {
/** 缓存的屏幕尺寸 */
private _screenSize: Size | null = null;
+ /** 称号展示数据 */
+ private _titleInfo: PassModalTitleInfo = {
+ titleText: '冷场小白1级',
+ nextTitleProgress: 0,
+ progressText: '还差3题获得冷场小白2级'
+ };
+
+ setParams(params: PassModalParams): void {
+ super.setParams(params);
+
+ if (params?.titleInfo) {
+ this.setTitleInfo(params.titleInfo);
+ }
+ }
+
/**
* 设置回调函数
*/
@@ -51,6 +85,17 @@ export class PassModal extends BaseView {
this._callbacks = callbacks;
}
+ /**
+ * 设置称号体系展示数据
+ */
+ setTitleInfo(titleInfo: PassModalTitleInfo): void {
+ this._titleInfo = {
+ ...this._titleInfo,
+ ...titleInfo
+ };
+ this._updateTitleInfo();
+ }
+
/**
* 页面首次加载时调用
*/
@@ -63,7 +108,9 @@ export class PassModal extends BaseView {
* 页面每次显示时调用
*/
onViewShow(): void {
+ super.onViewShow();
this._updateWidget();
+ this._updateTitleInfo();
this._playSuccessSound();
}
@@ -129,6 +176,34 @@ export class PassModal extends BaseView {
}
}
+ /**
+ * 更新称号体系核心变量
+ */
+ private _updateTitleInfo(): void {
+ if (this.titleLevelLabel && this._titleInfo.titleText !== undefined) {
+ this.titleLevelLabel.string = this._titleInfo.titleText;
+ }
+
+ if (this.titleProgressBar && this._titleInfo.nextTitleProgress !== undefined) {
+ this.titleProgressBar.progress = this._normalizeProgress(this._titleInfo.nextTitleProgress);
+ }
+
+ if (this.progressLabel && this._titleInfo.progressText !== undefined) {
+ this.progressLabel.string = this._titleInfo.progressText;
+ }
+ }
+
+ /**
+ * 规范化进度值
+ */
+ private _normalizeProgress(progress: number): number {
+ if (!Number.isFinite(progress)) {
+ return 0;
+ }
+
+ return Math.max(0, Math.min(1, progress));
+ }
+
/**
* 下一关按钮点击
*/
diff --git a/assets/prefabs/TimeoutModal.prefab b/assets/prefabs/TimeoutModal.prefab
new file mode 100644
index 0000000..9e10c60
--- /dev/null
+++ b/assets/prefabs/TimeoutModal.prefab
@@ -0,0 +1,2394 @@
+[
+ {
+ "__type__": "cc.Prefab",
+ "_name": "TimeoutModal",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_native": "",
+ "data": {
+ "__id__": 1
+ },
+ "optimizationPolicy": 0,
+ "persistent": false
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "TimeoutModal",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": null,
+ "_children": [
+ {
+ "__id__": 2
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 98
+ },
+ {
+ "__id__": 100
+ }
+ ],
+ "_prefab": {
+ "__id__": 102
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "dialogPanel",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 1
+ },
+ "_children": [
+ {
+ "__id__": 3
+ },
+ {
+ "__id__": 11
+ },
+ {
+ "__id__": 17
+ },
+ {
+ "__id__": 39
+ },
+ {
+ "__id__": 51
+ },
+ {
+ "__id__": 71
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 93
+ },
+ {
+ "__id__": 95
+ }
+ ],
+ "_prefab": {
+ "__id__": 97
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.5,
+ "y": 0.5,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "closeBtn",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 4
+ },
+ {
+ "__id__": 6
+ },
+ {
+ "__id__": 8
+ }
+ ],
+ "_prefab": {
+ "__id__": 10
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 579.972,
+ "y": 799.106,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 3
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 5
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 180,
+ "height": 191
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "412r9fk2BHWpD2X1rSJkww"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 3
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 7
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "540f8b6d-7cad-47e8-abae-b941c9bdd900@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "21B0+PZ41L+5bBN0giwudm"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 3
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 9
+ },
+ "_alignFlags": 33,
+ "_target": null,
+ "_left": 0,
+ "_right": 40.02800000000002,
+ "_top": 28.894000000000005,
+ "_bottom": 0,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "e6kTdMyd1C3ZK6dQGDNQYb"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "d0mJX0WihMarx8vLwZSGe3",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Title",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 12
+ },
+ {
+ "__id__": 14
+ }
+ ],
+ "_prefab": {
+ "__id__": 16
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 770,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 2,
+ "y": 2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 11
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 13
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 286,
+ "height": 94.2
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a5/UQjcmRLo7HkiHyN74nh"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 11
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 15
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_string": "时间耗尽",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 70,
+ "_fontSize": 70,
+ "_fontFamily": "Arial",
+ "_lineHeight": 70,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": true,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": true,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 3,
+ "_enableShadow": true,
+ "_shadowColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 98
+ },
+ "_shadowOffset": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": -8
+ },
+ "_shadowBlur": 2,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "ceF3Bp32VCd4YbyHCYG7FU"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "f9RaZl4+JJfL6r43DgdzBa",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "ButtonShare",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [
+ {
+ "__id__": 18
+ },
+ {
+ "__id__": 26
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 32
+ },
+ {
+ "__id__": 34
+ },
+ {
+ "__id__": 36
+ }
+ ],
+ "_prefab": {
+ "__id__": 38
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": -310,
+ "y": -392.466,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Label",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 17
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 19
+ },
+ {
+ "__id__": 21
+ },
+ {
+ "__id__": 23
+ }
+ ],
+ "_prefab": {
+ "__id__": 25
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 56.06,
+ "y": 7.598,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 18
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 20
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 330,
+ "height": 136
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "87mx3WaFFFL4+v/+4i8Zx2"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 18
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 22
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_string": "求助好友",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 80,
+ "_fontSize": 80,
+ "_fontFamily": "Arial",
+ "_lineHeight": 100,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": true,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": true,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 183,
+ "g": 125,
+ "b": 6,
+ "a": 255
+ },
+ "_outlineWidth": 5,
+ "_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": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "490umEN6ZMiK0QtWULiZ/P"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 18
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 24
+ },
+ "_alignFlags": 18,
+ "_target": null,
+ "_left": 0,
+ "_right": 0,
+ "_top": 0,
+ "_bottom": 0,
+ "_horizontalCenter": 56.06,
+ "_verticalCenter": 7.598,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "afYvKsXjlBwqyR370Uq1ce"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "5ej6tVa2pPSpmVfXv7Qfo+",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "flatIconHelp",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 17
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 27
+ },
+ {
+ "__id__": 29
+ }
+ ],
+ "_prefab": {
+ "__id__": 31
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": -178.884,
+ "y": 11.802,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.2,
+ "y": 0.2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 26
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 28
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 468,
+ "height": 468
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "f8+0yZ4OlEvY3v+exZr07k"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 26
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 30
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "69f85753-6740-4686-ba40-5d2383292f39@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "0afZkhTulNQ6uqBZayZLyP"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "51HTIu+SxET7OWjJCJYEMX",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 17
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 33
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 580,
+ "height": 234
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "c4aNcq+lZDLLhgsEqWUklR"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 17
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 35
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "ba58112d-788c-465d-a2f3-46b468026d03@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "ccrghFsT9MhKwmUxKh+xki"
+ },
+ {
+ "__type__": "cc.UIOpacity",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 17
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 37
+ },
+ "_opacity": 192,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "f7gu9ig4tNc4oEnw1gyXS4"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "77l3F+7/dE+b92gfIk9YLK",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "sphere",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [
+ {
+ "__id__": 40
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 46
+ },
+ {
+ "__id__": 48
+ }
+ ],
+ "_prefab": {
+ "__id__": 50
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 190.8499999999999,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 2,
+ "y": 2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "heart",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 39
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 41
+ },
+ {
+ "__id__": 43
+ }
+ ],
+ "_prefab": {
+ "__id__": 45
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -3.349,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.4,
+ "y": 0.4,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 40
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 42
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 568,
+ "height": 630
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "c2gj1BxsROHJO20cchgAtr"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 40
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 44
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "98c2d728-0c34-499f-9a80-8aada311204d@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "2fR64hN01DZbbmLQsFglfX"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "36nCxsXvpL07IHlCgf5qPs",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 39
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 47
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 350,
+ "height": 350
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "0b94WSuwlHfqFNRchpwmM5"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 39
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 49
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "7a17df33-9d28-4272-9f3e-f336af8d4afb@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "55O2cXx/FOlKsCFnViyN7H"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "fbCCd/NElI8r/gaodTgopa",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "ButtonRestart",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [
+ {
+ "__id__": 52
+ },
+ {
+ "__id__": 60
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 66
+ },
+ {
+ "__id__": 68
+ }
+ ],
+ "_prefab": {
+ "__id__": 70
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -656.544,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Label",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 51
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 53
+ },
+ {
+ "__id__": 55
+ },
+ {
+ "__id__": 57
+ }
+ ],
+ "_prefab": {
+ "__id__": 59
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 49.166,
+ "y": 7.598,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 52
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 54
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 330,
+ "height": 136
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "07Om9yQl1P4by8winCo7q6"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 52
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 56
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_string": "再次挑战",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 80,
+ "_fontSize": 80,
+ "_fontFamily": "Arial",
+ "_lineHeight": 100,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": true,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": true,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 74,
+ "g": 153,
+ "b": 38,
+ "a": 255
+ },
+ "_outlineWidth": 5,
+ "_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": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "08oOODjIdBArqOvl52H9zY"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 52
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 58
+ },
+ "_alignFlags": 18,
+ "_target": null,
+ "_left": 0,
+ "_right": 0,
+ "_top": 0,
+ "_bottom": 0,
+ "_horizontalCenter": 49.166,
+ "_verticalCenter": 7.598,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "c9VG06aLpBn7CiKYL60otw"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "44A832YTdNPK9WNGuFDK8R",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "flatIconRestart",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 51
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 61
+ },
+ {
+ "__id__": 63
+ }
+ ],
+ "_prefab": {
+ "__id__": 65
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": -177.422,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.2,
+ "y": 0.2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 60
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 62
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 490,
+ "height": 492
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a1dAg52EtFPKa4fRIpZGBI"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 60
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 64
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "c24760c9-312a-4638-ae56-6422010d93d0@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "27pXgblcVNprkFVgxD9WQZ"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "4bkTOdFDZCE7Ns59xjZVpi",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 51
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 67
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1200,
+ "height": 234
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "82lHU8voxE4r+0kyAVXF/M"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 51
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 69
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "f87d228a-c520-499a-bf3a-e66cbb6def64@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "deIXk3pwxOVqLs/mP5fa30"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "0f+Q+b/gNIOYet56zae/V5",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "ButtonHome",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [
+ {
+ "__id__": 72
+ },
+ {
+ "__id__": 80
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 86
+ },
+ {
+ "__id__": 88
+ },
+ {
+ "__id__": 90
+ }
+ ],
+ "_prefab": {
+ "__id__": 92
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 310,
+ "y": -392.466,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Label",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 71
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 73
+ },
+ {
+ "__id__": 75
+ },
+ {
+ "__id__": 77
+ }
+ ],
+ "_prefab": {
+ "__id__": 79
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 49.166,
+ "y": 7.598,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 72
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 74
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 330,
+ "height": 136
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "e38bkgAEJGrbWi0E98XcpV"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 72
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 76
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_string": "返回主页",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 80,
+ "_fontSize": 80,
+ "_fontFamily": "Arial",
+ "_lineHeight": 100,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": true,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": true,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 182,
+ "g": 81,
+ "b": 7,
+ "a": 255
+ },
+ "_outlineWidth": 5,
+ "_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": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "eeO2apklFGHq6gXBchz1oT"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 72
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 78
+ },
+ "_alignFlags": 18,
+ "_target": null,
+ "_left": 0,
+ "_right": 0,
+ "_top": 0,
+ "_bottom": 0,
+ "_horizontalCenter": 49.166,
+ "_verticalCenter": 7.598,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "f9hL9nm/tC+Ikjc7Sc/YLa"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "4c/tUfaHVJ1Kqp6GW/pjeG",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "flatIconHome",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 71
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 81
+ },
+ {
+ "__id__": 83
+ }
+ ],
+ "_prefab": {
+ "__id__": 85
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": -177.422,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.2,
+ "y": 0.2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 80
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 82
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 427,
+ "height": 427
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a5fRzDNGJPsKp178zaH+cN"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 80
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 84
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "fb73de29-d734-4eb4-853d-8cbdbb18a9c9@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "8fsPGUEy9DmYr50iRq43o4"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "19seqoknxEL5Je6geBO4+Q",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 71
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 87
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 580,
+ "height": 234
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "d12vosWhlH8rDfWaVTxoqp"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 71
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 89
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "0366f161-d78c-43b1-b2cb-8d0666dd2fbd@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "92lEygP3ZH8JtaolLfaRRF"
+ },
+ {
+ "__type__": "cc.UIOpacity",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 71
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 91
+ },
+ "_opacity": 192,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "74REJyNs5N/poR72fDQT8g"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "99IWUc/+xNyJf3Ude8GgsI",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 2
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 94
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1420,
+ "height": 1847
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "cbghKsLQpLtYZP8mDTgn11"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 2
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 96
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "10f211a7-5580-4da3-94d2-2d285d63ac28@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "fe9hjaoTZOZLr/00McCFgI"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "a0jedATEhFaqJKhCFKlm8G",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 1
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 99
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1080,
+ "height": 2160
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "61F6RIyuhAgbmtMPXXVPb6"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 1
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 101
+ },
+ "_alignFlags": 45,
+ "_target": null,
+ "_left": 0,
+ "_right": 0,
+ "_top": 0,
+ "_bottom": 0,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 100,
+ "_originalHeight": 100,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a29RxiIzdCmb3+pvtytcYa"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "c46/YsCPVOJYA4mWEpNYRx",
+ "instance": null,
+ "targetOverrides": null
+ }
+]
\ No newline at end of file
diff --git a/assets/prefabs/TimeoutModal.prefab.meta b/assets/prefabs/TimeoutModal.prefab.meta
new file mode 100644
index 0000000..de6303d
--- /dev/null
+++ b/assets/prefabs/TimeoutModal.prefab.meta
@@ -0,0 +1,13 @@
+{
+ "ver": "1.1.50",
+ "importer": "prefab",
+ "imported": true,
+ "uuid": "e41c722f-f605-47f7-9ce4-abff0ed2020f",
+ "files": [
+ ".json"
+ ],
+ "subMetas": {},
+ "userData": {
+ "syncNodeName": "TimeoutModal"
+ }
+}
diff --git a/assets/prefabs/WrongModal.prefab b/assets/prefabs/WrongModal.prefab
new file mode 100644
index 0000000..35c7c36
--- /dev/null
+++ b/assets/prefabs/WrongModal.prefab
@@ -0,0 +1,1449 @@
+[
+ {
+ "__type__": "cc.Prefab",
+ "_name": "WrongModal",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_native": "",
+ "data": {
+ "__id__": 1
+ },
+ "optimizationPolicy": 0,
+ "persistent": false
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "WrongModal",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": null,
+ "_children": [
+ {
+ "__id__": 2
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 56
+ },
+ {
+ "__id__": 58
+ }
+ ],
+ "_prefab": {
+ "__id__": 60
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "dialogPanel",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 1
+ },
+ "_children": [
+ {
+ "__id__": 3
+ },
+ {
+ "__id__": 11
+ },
+ {
+ "__id__": 17
+ },
+ {
+ "__id__": 23
+ },
+ {
+ "__id__": 39
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 51
+ },
+ {
+ "__id__": 53
+ }
+ ],
+ "_prefab": {
+ "__id__": 55
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.5,
+ "y": 0.5,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "closeBtn",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 4
+ },
+ {
+ "__id__": 6
+ },
+ {
+ "__id__": 8
+ }
+ ],
+ "_prefab": {
+ "__id__": 10
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 579.972,
+ "y": 799.106,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 3
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 5
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 180,
+ "height": 191
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "412r9fk2BHWpD2X1rSJkww"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 3
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 7
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "540f8b6d-7cad-47e8-abae-b941c9bdd900@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "21B0+PZ41L+5bBN0giwudm"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 3
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 9
+ },
+ "_alignFlags": 33,
+ "_target": null,
+ "_left": 0,
+ "_right": 40.02800000000002,
+ "_top": 28.894000000000005,
+ "_bottom": 0,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "e6kTdMyd1C3ZK6dQGDNQYb"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "d0mJX0WihMarx8vLwZSGe3",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Title",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 12
+ },
+ {
+ "__id__": 14
+ }
+ ],
+ "_prefab": {
+ "__id__": 16
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 770,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 2,
+ "y": 2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 11
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 13
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 286,
+ "height": 94.2
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a5/UQjcmRLo7HkiHyN74nh"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 11
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 15
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_string": "温馨提示",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 70,
+ "_fontSize": 70,
+ "_fontFamily": "Arial",
+ "_lineHeight": 70,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": true,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": true,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 3,
+ "_enableShadow": true,
+ "_shadowColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 98
+ },
+ "_shadowOffset": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": -8
+ },
+ "_shadowBlur": 2,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "ceF3Bp32VCd4YbyHCYG7FU"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "f9RaZl4+JJfL6r43DgdzBa",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Content",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 18
+ },
+ {
+ "__id__": 20
+ }
+ ],
+ "_prefab": {
+ "__id__": 22
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -302.5819999999999,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 2,
+ "y": 2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 17
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 19
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 450,
+ "height": 69.3
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "5box8ADDlF47qbQwm1zKq2"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 17
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 21
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 56,
+ "g": 78,
+ "b": 40,
+ "a": 255
+ },
+ "_string": "哎呀,再仔细想想看?",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 45,
+ "_fontSize": 45,
+ "_fontFamily": "Arial",
+ "_lineHeight": 55,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": true,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": false,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 255
+ },
+ "_outlineWidth": 3,
+ "_enableShadow": false,
+ "_shadowColor": {
+ "__type__": "cc.Color",
+ "r": 0,
+ "g": 0,
+ "b": 0,
+ "a": 98
+ },
+ "_shadowOffset": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": -8
+ },
+ "_shadowBlur": 2,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "9866guoQRJ95i2Vh5qFC9z"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "640uQ8mrJImr2TZQLmVrX4",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "ButtonHint",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [
+ {
+ "__id__": 24
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 32
+ },
+ {
+ "__id__": 34
+ },
+ {
+ "__id__": 36
+ }
+ ],
+ "_prefab": {
+ "__id__": 38
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -627.0459999999999,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "Label",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 23
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 25
+ },
+ {
+ "__id__": 27
+ },
+ {
+ "__id__": 29
+ }
+ ],
+ "_prefab": {
+ "__id__": 31
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 7.598,
+ "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": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 24
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 26
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 330,
+ "height": 136
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "87mx3WaFFFL4+v/+4i8Zx2"
+ },
+ {
+ "__type__": "cc.Label",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 24
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 28
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_string": "继续挑战",
+ "_horizontalAlign": 1,
+ "_verticalAlign": 1,
+ "_actualFontSize": 80,
+ "_fontSize": 80,
+ "_fontFamily": "Arial",
+ "_lineHeight": 100,
+ "_overflow": 0,
+ "_enableWrapText": true,
+ "_font": {
+ "__uuid__": "fb4acba6-6bc7-4eb3-be34-8f2ac9823a80",
+ "__expectedType__": "cc.TTFFont"
+ },
+ "_isSystemFontUsed": false,
+ "_spacingX": 0,
+ "_isItalic": false,
+ "_isBold": true,
+ "_isUnderline": false,
+ "_underlineHeight": 2,
+ "_cacheMode": 0,
+ "_enableOutline": true,
+ "_outlineColor": {
+ "__type__": "cc.Color",
+ "r": 72,
+ "g": 158,
+ "b": 35,
+ "a": 255
+ },
+ "_outlineWidth": 5,
+ "_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": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "490umEN6ZMiK0QtWULiZ/P"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 24
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 30
+ },
+ "_alignFlags": 18,
+ "_target": null,
+ "_left": 0,
+ "_right": 0,
+ "_top": 0,
+ "_bottom": 0,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 7.598,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "afYvKsXjlBwqyR370Uq1ce"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "5ej6tVa2pPSpmVfXv7Qfo+",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 23
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 33
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 800,
+ "height": 234
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "c4aNcq+lZDLLhgsEqWUklR"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 23
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 35
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "f87d228a-c520-499a-bf3a-e66cbb6def64@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "ccrghFsT9MhKwmUxKh+xki"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 23
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 37
+ },
+ "_alignFlags": 12,
+ "_target": null,
+ "_left": 310,
+ "_right": 0,
+ "_top": 0,
+ "_bottom": 179.45400000000006,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 0,
+ "_originalHeight": 0,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "566NGbzlJOyLK5JELzf1Nj"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "77l3F+7/dE+b92gfIk9YLK",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "sphere",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 2
+ },
+ "_children": [
+ {
+ "__id__": 40
+ }
+ ],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 46
+ },
+ {
+ "__id__": 48
+ }
+ ],
+ "_prefab": {
+ "__id__": 50
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 190.8499999999999,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 2,
+ "y": 2,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.Node",
+ "_name": "heart",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "_parent": {
+ "__id__": 39
+ },
+ "_children": [],
+ "_active": true,
+ "_components": [
+ {
+ "__id__": 41
+ },
+ {
+ "__id__": 43
+ }
+ ],
+ "_prefab": {
+ "__id__": 45
+ },
+ "_lpos": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": -12.293,
+ "z": 0
+ },
+ "_lrot": {
+ "__type__": "cc.Quat",
+ "x": 0,
+ "y": 0,
+ "z": 0,
+ "w": 1
+ },
+ "_lscale": {
+ "__type__": "cc.Vec3",
+ "x": 0.4,
+ "y": 0.4,
+ "z": 1
+ },
+ "_mobility": 0,
+ "_layer": 1073741824,
+ "_euler": {
+ "__type__": "cc.Vec3",
+ "x": 0,
+ "y": 0,
+ "z": 0
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 40
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 42
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 618,
+ "height": 529
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "c2gj1BxsROHJO20cchgAtr"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 40
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 44
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "83e4a585-2ca9-485a-8ed5-b8782eafcc54@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "2fR64hN01DZbbmLQsFglfX"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "36nCxsXvpL07IHlCgf5qPs",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 39
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 47
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 350,
+ "height": 350
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "0b94WSuwlHfqFNRchpwmM5"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 39
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 49
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "7a17df33-9d28-4272-9f3e-f336af8d4afb@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 0,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "55O2cXx/FOlKsCFnViyN7H"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "fbCCd/NElI8r/gaodTgopa",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 2
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 52
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1420,
+ "height": 1847
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "cbghKsLQpLtYZP8mDTgn11"
+ },
+ {
+ "__type__": "cc.Sprite",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 2
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 54
+ },
+ "_customMaterial": null,
+ "_srcBlendFactor": 2,
+ "_dstBlendFactor": 4,
+ "_color": {
+ "__type__": "cc.Color",
+ "r": 255,
+ "g": 255,
+ "b": 255,
+ "a": 255
+ },
+ "_spriteFrame": {
+ "__uuid__": "10f211a7-5580-4da3-94d2-2d285d63ac28@f9941",
+ "__expectedType__": "cc.SpriteFrame"
+ },
+ "_type": 1,
+ "_fillType": 0,
+ "_sizeMode": 0,
+ "_fillCenter": {
+ "__type__": "cc.Vec2",
+ "x": 0,
+ "y": 0
+ },
+ "_fillStart": 0,
+ "_fillRange": 0,
+ "_isTrimmedMode": true,
+ "_useGrayscale": false,
+ "_atlas": null,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "fe9hjaoTZOZLr/00McCFgI"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "a0jedATEhFaqJKhCFKlm8G",
+ "instance": null,
+ "targetOverrides": null,
+ "nestedPrefabInstanceRoots": null
+ },
+ {
+ "__type__": "cc.UITransform",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 1
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 57
+ },
+ "_contentSize": {
+ "__type__": "cc.Size",
+ "width": 1080,
+ "height": 2160
+ },
+ "_anchorPoint": {
+ "__type__": "cc.Vec2",
+ "x": 0.5,
+ "y": 0.5
+ },
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "61F6RIyuhAgbmtMPXXVPb6"
+ },
+ {
+ "__type__": "cc.Widget",
+ "_name": "",
+ "_objFlags": 0,
+ "__editorExtras__": {},
+ "node": {
+ "__id__": 1
+ },
+ "_enabled": true,
+ "__prefab": {
+ "__id__": 59
+ },
+ "_alignFlags": 45,
+ "_target": null,
+ "_left": 0,
+ "_right": 0,
+ "_top": 0,
+ "_bottom": 0,
+ "_horizontalCenter": 0,
+ "_verticalCenter": 0,
+ "_isAbsLeft": true,
+ "_isAbsRight": true,
+ "_isAbsTop": true,
+ "_isAbsBottom": true,
+ "_isAbsHorizontalCenter": true,
+ "_isAbsVerticalCenter": true,
+ "_originalWidth": 100,
+ "_originalHeight": 100,
+ "_alignMode": 2,
+ "_lockFlags": 0,
+ "_id": ""
+ },
+ {
+ "__type__": "cc.CompPrefabInfo",
+ "fileId": "a29RxiIzdCmb3+pvtytcYa"
+ },
+ {
+ "__type__": "cc.PrefabInfo",
+ "root": {
+ "__id__": 1
+ },
+ "asset": {
+ "__id__": 0
+ },
+ "fileId": "c46/YsCPVOJYA4mWEpNYRx",
+ "instance": null,
+ "targetOverrides": null
+ }
+]
\ No newline at end of file
diff --git a/assets/prefabs/WrongModal.prefab.meta b/assets/prefabs/WrongModal.prefab.meta
new file mode 100644
index 0000000..fd1493b
--- /dev/null
+++ b/assets/prefabs/WrongModal.prefab.meta
@@ -0,0 +1,13 @@
+{
+ "ver": "1.1.50",
+ "importer": "prefab",
+ "imported": true,
+ "uuid": "455c7845-d090-4cd9-aeb4-1f5cad616bb5",
+ "files": [
+ ".json"
+ ],
+ "subMetas": {},
+ "userData": {
+ "syncNodeName": "WrongModal"
+ }
+}
diff --git a/assets/resources/images/pageLevel/1_0022_Layer-19.png b/assets/resources/images/pageLevel/1_0022_Layer-19.png
new file mode 100644
index 0000000..5039f77
Binary files /dev/null and b/assets/resources/images/pageLevel/1_0022_Layer-19.png differ
diff --git a/assets/resources/images/pageLevel/1_0022_Layer-19.png.meta b/assets/resources/images/pageLevel/1_0022_Layer-19.png.meta
new file mode 100644
index 0000000..f3b1f79
--- /dev/null
+++ b/assets/resources/images/pageLevel/1_0022_Layer-19.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "3ef3f86f-bc1f-49b7-a50f-0e8683cd2400",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "3ef3f86f-bc1f-49b7-a50f-0e8683cd2400@6c48a",
+ "displayName": "1_0022_Layer-19",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "3ef3f86f-bc1f-49b7-a50f-0e8683cd2400",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "3ef3f86f-bc1f-49b7-a50f-0e8683cd2400@f9941",
+ "displayName": "1_0022_Layer-19",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 1297,
+ "height": 1004,
+ "rawWidth": 1297,
+ "rawHeight": 1004,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -648.5,
+ -502,
+ 0,
+ 648.5,
+ -502,
+ 0,
+ -648.5,
+ 502,
+ 0,
+ 648.5,
+ 502,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 1004,
+ 1297,
+ 1004,
+ 0,
+ 0,
+ 1297,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -648.5,
+ -502,
+ 0
+ ],
+ "maxPos": [
+ 648.5,
+ 502,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "3ef3f86f-bc1f-49b7-a50f-0e8683cd2400@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "3ef3f86f-bc1f-49b7-a50f-0e8683cd2400@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/ButtonGreen.png.meta b/assets/resources/images/pageLevel/ButtonGreen.png.meta
index 756d2f0..61d1afd 100644
--- a/assets/resources/images/pageLevel/ButtonGreen.png.meta
+++ b/assets/resources/images/pageLevel/ButtonGreen.png.meta
@@ -51,8 +51,8 @@
"rawHeight": 235,
"borderTop": 0,
"borderBottom": 0,
- "borderLeft": 0,
- "borderRight": 0,
+ "borderLeft": 120,
+ "borderRight": 120,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
diff --git a/assets/resources/images/pageLevel/ButtonOrange.png b/assets/resources/images/pageLevel/ButtonOrange.png
new file mode 100644
index 0000000..481c23f
Binary files /dev/null and b/assets/resources/images/pageLevel/ButtonOrange.png differ
diff --git a/assets/resources/images/pageLevel/ButtonOrange.png.meta b/assets/resources/images/pageLevel/ButtonOrange.png.meta
new file mode 100644
index 0000000..6dcd1d7
--- /dev/null
+++ b/assets/resources/images/pageLevel/ButtonOrange.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "0366f161-d78c-43b1-b2cb-8d0666dd2fbd",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "0366f161-d78c-43b1-b2cb-8d0666dd2fbd@6c48a",
+ "displayName": "ButtonOrange",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "0366f161-d78c-43b1-b2cb-8d0666dd2fbd",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "0366f161-d78c-43b1-b2cb-8d0666dd2fbd@f9941",
+ "displayName": "ButtonOrange",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": -0.5,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 665,
+ "height": 235,
+ "rawWidth": 666,
+ "rawHeight": 235,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -332.5,
+ -117.5,
+ 0,
+ 332.5,
+ -117.5,
+ 0,
+ -332.5,
+ 117.5,
+ 0,
+ 332.5,
+ 117.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 235,
+ 665,
+ 235,
+ 0,
+ 0,
+ 665,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 0.9984984984984985,
+ 0,
+ 0,
+ 1,
+ 0.9984984984984985,
+ 1
+ ],
+ "minPos": [
+ -332.5,
+ -117.5,
+ 0
+ ],
+ "maxPos": [
+ 332.5,
+ 117.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "0366f161-d78c-43b1-b2cb-8d0666dd2fbd@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "0366f161-d78c-43b1-b2cb-8d0666dd2fbd@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/clock.png b/assets/resources/images/pageLevel/clock.png
new file mode 100644
index 0000000..f6c7924
Binary files /dev/null and b/assets/resources/images/pageLevel/clock.png differ
diff --git a/assets/resources/images/pageLevel/test.png.meta b/assets/resources/images/pageLevel/clock.png.meta
similarity index 70%
rename from assets/resources/images/pageLevel/test.png.meta
rename to assets/resources/images/pageLevel/clock.png.meta
index 1fc95fb..2d41762 100644
--- a/assets/resources/images/pageLevel/test.png.meta
+++ b/assets/resources/images/pageLevel/clock.png.meta
@@ -2,7 +2,7 @@
"ver": "1.0.27",
"importer": "image",
"imported": true,
- "uuid": "d46acd4d-66e2-423b-8015-334ff99dd9f1",
+ "uuid": "98c2d728-0c34-499f-9a80-8aada311204d",
"files": [
".json",
".png"
@@ -10,14 +10,14 @@
"subMetas": {
"6c48a": {
"importer": "texture",
- "uuid": "d46acd4d-66e2-423b-8015-334ff99dd9f1@6c48a",
- "displayName": "test",
+ "uuid": "98c2d728-0c34-499f-9a80-8aada311204d@6c48a",
+ "displayName": "clock",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
- "imageUuidOrDatabaseUri": "d46acd4d-66e2-423b-8015-334ff99dd9f1",
+ "imageUuidOrDatabaseUri": "98c2d728-0c34-499f-9a80-8aada311204d",
"isUuid": true,
"visible": false,
"minfilter": "linear",
@@ -34,8 +34,8 @@
},
"f9941": {
"importer": "sprite-frame",
- "uuid": "d46acd4d-66e2-423b-8015-334ff99dd9f1@f9941",
- "displayName": "test",
+ "uuid": "98c2d728-0c34-499f-9a80-8aada311204d@f9941",
+ "displayName": "clock",
"id": "f9941",
"name": "spriteFrame",
"userData": {
@@ -45,10 +45,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
- "width": 536,
- "height": 548,
- "rawWidth": 536,
- "rawHeight": 548,
+ "width": 568,
+ "height": 630,
+ "rawWidth": 568,
+ "rawHeight": 630,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@@ -60,17 +60,17 @@
"meshType": 0,
"vertices": {
"rawPosition": [
- -268,
- -274,
+ -284,
+ -315,
0,
- 268,
- -274,
+ 284,
+ -315,
0,
- -268,
- 274,
+ -284,
+ 315,
0,
- 268,
- 274,
+ 284,
+ 315,
0
],
"indexes": [
@@ -83,12 +83,12 @@
],
"uv": [
0,
- 548,
- 536,
- 548,
+ 630,
+ 568,
+ 630,
0,
0,
- 536,
+ 568,
0
],
"nuv": [
@@ -102,18 +102,18 @@
1
],
"minPos": [
- -268,
- -274,
+ -284,
+ -315,
0
],
"maxPos": [
- 268,
- 274,
+ 284,
+ 315,
0
]
},
"isUuid": true,
- "imageUuidOrDatabaseUri": "d46acd4d-66e2-423b-8015-334ff99dd9f1@6c48a",
+ "imageUuidOrDatabaseUri": "98c2d728-0c34-499f-9a80-8aada311204d@6c48a",
"atlasUuid": "",
"trimType": "auto"
},
@@ -128,7 +128,7 @@
"userData": {
"type": "sprite-frame",
"fixAlphaTransparencyArtifacts": false,
- "hasAlpha": false,
- "redirect": "d46acd4d-66e2-423b-8015-334ff99dd9f1@6c48a"
+ "hasAlpha": true,
+ "redirect": "98c2d728-0c34-499f-9a80-8aada311204d@6c48a"
}
}
diff --git a/assets/resources/images/pageLevel/closeBtn.png b/assets/resources/images/pageLevel/closeBtn.png
new file mode 100644
index 0000000..a85dc6c
Binary files /dev/null and b/assets/resources/images/pageLevel/closeBtn.png differ
diff --git a/assets/resources/images/pageLevel/closeBtn.png.meta b/assets/resources/images/pageLevel/closeBtn.png.meta
new file mode 100644
index 0000000..e68fa65
--- /dev/null
+++ b/assets/resources/images/pageLevel/closeBtn.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "540f8b6d-7cad-47e8-abae-b941c9bdd900",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "540f8b6d-7cad-47e8-abae-b941c9bdd900@6c48a",
+ "displayName": "closeBtn",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "540f8b6d-7cad-47e8-abae-b941c9bdd900",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "540f8b6d-7cad-47e8-abae-b941c9bdd900@f9941",
+ "displayName": "closeBtn",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 180,
+ "height": 191,
+ "rawWidth": 180,
+ "rawHeight": 191,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -90,
+ -95.5,
+ 0,
+ 90,
+ -95.5,
+ 0,
+ -90,
+ 95.5,
+ 0,
+ 90,
+ 95.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 191,
+ 180,
+ 191,
+ 0,
+ 0,
+ 180,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -90,
+ -95.5,
+ 0
+ ],
+ "maxPos": [
+ 90,
+ 95.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "540f8b6d-7cad-47e8-abae-b941c9bdd900@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "540f8b6d-7cad-47e8-abae-b941c9bdd900@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/dialogPanel.png b/assets/resources/images/pageLevel/dialogPanel.png
new file mode 100644
index 0000000..47a5940
Binary files /dev/null and b/assets/resources/images/pageLevel/dialogPanel.png differ
diff --git a/assets/resources/images/pageLevel/dialogPanel.png.meta b/assets/resources/images/pageLevel/dialogPanel.png.meta
new file mode 100644
index 0000000..2cc4433
--- /dev/null
+++ b/assets/resources/images/pageLevel/dialogPanel.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "10f211a7-5580-4da3-94d2-2d285d63ac28",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "10f211a7-5580-4da3-94d2-2d285d63ac28@6c48a",
+ "displayName": "dialogPanel",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "10f211a7-5580-4da3-94d2-2d285d63ac28",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "10f211a7-5580-4da3-94d2-2d285d63ac28@f9941",
+ "displayName": "dialogPanel",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 2,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 1420,
+ "height": 1845,
+ "rawWidth": 1420,
+ "rawHeight": 1849,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -710,
+ -922.5,
+ 0,
+ 710,
+ -922.5,
+ 0,
+ -710,
+ 922.5,
+ 0,
+ 710,
+ 922.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 1849,
+ 1420,
+ 1849,
+ 0,
+ 4,
+ 1420,
+ 4
+ ],
+ "nuv": [
+ 0,
+ 0.002163331530557058,
+ 1,
+ 0.002163331530557058,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -710,
+ -922.5,
+ 0
+ ],
+ "maxPos": [
+ 710,
+ 922.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "10f211a7-5580-4da3-94d2-2d285d63ac28@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "10f211a7-5580-4da3-94d2-2d285d63ac28@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/flatIconHelp.png b/assets/resources/images/pageLevel/flatIconHelp.png
new file mode 100644
index 0000000..23d937e
Binary files /dev/null and b/assets/resources/images/pageLevel/flatIconHelp.png differ
diff --git a/assets/resources/images/pageLevel/flatIconHelp.png.meta b/assets/resources/images/pageLevel/flatIconHelp.png.meta
new file mode 100644
index 0000000..9ccbc47
--- /dev/null
+++ b/assets/resources/images/pageLevel/flatIconHelp.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "69f85753-6740-4686-ba40-5d2383292f39",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "69f85753-6740-4686-ba40-5d2383292f39@6c48a",
+ "displayName": "flatIconHelp",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "69f85753-6740-4686-ba40-5d2383292f39",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "69f85753-6740-4686-ba40-5d2383292f39@f9941",
+ "displayName": "flatIconHelp",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 468,
+ "height": 468,
+ "rawWidth": 468,
+ "rawHeight": 468,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -234,
+ -234,
+ 0,
+ 234,
+ -234,
+ 0,
+ -234,
+ 234,
+ 0,
+ 234,
+ 234,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 468,
+ 468,
+ 468,
+ 0,
+ 0,
+ 468,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -234,
+ -234,
+ 0
+ ],
+ "maxPos": [
+ 234,
+ 234,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "69f85753-6740-4686-ba40-5d2383292f39@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "69f85753-6740-4686-ba40-5d2383292f39@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/flatIconHome.png b/assets/resources/images/pageLevel/flatIconHome.png
new file mode 100644
index 0000000..601cf3f
Binary files /dev/null and b/assets/resources/images/pageLevel/flatIconHome.png differ
diff --git a/assets/resources/images/pageLevel/flatIconHome.png.meta b/assets/resources/images/pageLevel/flatIconHome.png.meta
new file mode 100644
index 0000000..2f5e12d
--- /dev/null
+++ b/assets/resources/images/pageLevel/flatIconHome.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "fb73de29-d734-4eb4-853d-8cbdbb18a9c9",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "fb73de29-d734-4eb4-853d-8cbdbb18a9c9@6c48a",
+ "displayName": "flatIconHome",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "fb73de29-d734-4eb4-853d-8cbdbb18a9c9",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "fb73de29-d734-4eb4-853d-8cbdbb18a9c9@f9941",
+ "displayName": "flatIconHome",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 427,
+ "height": 427,
+ "rawWidth": 427,
+ "rawHeight": 427,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -213.5,
+ -213.5,
+ 0,
+ 213.5,
+ -213.5,
+ 0,
+ -213.5,
+ 213.5,
+ 0,
+ 213.5,
+ 213.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 427,
+ 427,
+ 427,
+ 0,
+ 0,
+ 427,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -213.5,
+ -213.5,
+ 0
+ ],
+ "maxPos": [
+ 213.5,
+ 213.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "fb73de29-d734-4eb4-853d-8cbdbb18a9c9@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "fb73de29-d734-4eb4-853d-8cbdbb18a9c9@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/flatIconNext.png b/assets/resources/images/pageLevel/flatIconNext.png
new file mode 100644
index 0000000..1ae9086
Binary files /dev/null and b/assets/resources/images/pageLevel/flatIconNext.png differ
diff --git a/assets/resources/images/pageLevel/flatIconNext.png.meta b/assets/resources/images/pageLevel/flatIconNext.png.meta
new file mode 100644
index 0000000..fec4506
--- /dev/null
+++ b/assets/resources/images/pageLevel/flatIconNext.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "1c8a9e95-7b00-4e59-a0a2-72a4aa97c03c",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "1c8a9e95-7b00-4e59-a0a2-72a4aa97c03c@6c48a",
+ "displayName": "flatIconNext",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "1c8a9e95-7b00-4e59-a0a2-72a4aa97c03c",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "1c8a9e95-7b00-4e59-a0a2-72a4aa97c03c@f9941",
+ "displayName": "flatIconNext",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 13.5,
+ "offsetY": -0.5,
+ "trimX": 82,
+ "trimY": 29,
+ "width": 375,
+ "height": 455,
+ "rawWidth": 512,
+ "rawHeight": 512,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -187.5,
+ -227.5,
+ 0,
+ 187.5,
+ -227.5,
+ 0,
+ -187.5,
+ 227.5,
+ 0,
+ 187.5,
+ 227.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 82,
+ 483,
+ 457,
+ 483,
+ 82,
+ 28,
+ 457,
+ 28
+ ],
+ "nuv": [
+ 0.16015625,
+ 0.0546875,
+ 0.892578125,
+ 0.0546875,
+ 0.16015625,
+ 0.943359375,
+ 0.892578125,
+ 0.943359375
+ ],
+ "minPos": [
+ -187.5,
+ -227.5,
+ 0
+ ],
+ "maxPos": [
+ 187.5,
+ 227.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "1c8a9e95-7b00-4e59-a0a2-72a4aa97c03c@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "1c8a9e95-7b00-4e59-a0a2-72a4aa97c03c@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/flatIconRestart.png b/assets/resources/images/pageLevel/flatIconRestart.png
new file mode 100644
index 0000000..578645c
Binary files /dev/null and b/assets/resources/images/pageLevel/flatIconRestart.png differ
diff --git a/assets/resources/images/pageLevel/flatIconRestart.png.meta b/assets/resources/images/pageLevel/flatIconRestart.png.meta
new file mode 100644
index 0000000..889395a
--- /dev/null
+++ b/assets/resources/images/pageLevel/flatIconRestart.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "c24760c9-312a-4638-ae56-6422010d93d0",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "c24760c9-312a-4638-ae56-6422010d93d0@6c48a",
+ "displayName": "flatIconRestart",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "c24760c9-312a-4638-ae56-6422010d93d0",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "c24760c9-312a-4638-ae56-6422010d93d0@f9941",
+ "displayName": "flatIconRestart",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 490,
+ "height": 492,
+ "rawWidth": 490,
+ "rawHeight": 492,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -245,
+ -246,
+ 0,
+ 245,
+ -246,
+ 0,
+ -245,
+ 246,
+ 0,
+ 245,
+ 246,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 492,
+ 490,
+ 492,
+ 0,
+ 0,
+ 490,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -245,
+ -246,
+ 0
+ ],
+ "maxPos": [
+ 245,
+ 246,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c24760c9-312a-4638-ae56-6422010d93d0@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "c24760c9-312a-4638-ae56-6422010d93d0@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/flatIconShare.png b/assets/resources/images/pageLevel/flatIconShare.png
new file mode 100644
index 0000000..dab0f6a
Binary files /dev/null and b/assets/resources/images/pageLevel/flatIconShare.png differ
diff --git a/assets/resources/images/pageLevel/flatIconShare.png.meta b/assets/resources/images/pageLevel/flatIconShare.png.meta
new file mode 100644
index 0000000..8c5c118
--- /dev/null
+++ b/assets/resources/images/pageLevel/flatIconShare.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "b9bec232-3d37-48a0-9ca8-62aab6c4083b",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "b9bec232-3d37-48a0-9ca8-62aab6c4083b@6c48a",
+ "displayName": "flatIconShare",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "b9bec232-3d37-48a0-9ca8-62aab6c4083b",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "b9bec232-3d37-48a0-9ca8-62aab6c4083b@f9941",
+ "displayName": "flatIconShare",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 22,
+ "trimY": 11,
+ "width": 468,
+ "height": 490,
+ "rawWidth": 512,
+ "rawHeight": 512,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -234,
+ -245,
+ 0,
+ 234,
+ -245,
+ 0,
+ -234,
+ 245,
+ 0,
+ 234,
+ 245,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 22,
+ 501,
+ 490,
+ 501,
+ 22,
+ 11,
+ 490,
+ 11
+ ],
+ "nuv": [
+ 0.04296875,
+ 0.021484375,
+ 0.95703125,
+ 0.021484375,
+ 0.04296875,
+ 0.978515625,
+ 0.95703125,
+ 0.978515625
+ ],
+ "minPos": [
+ -234,
+ -245,
+ 0
+ ],
+ "maxPos": [
+ 234,
+ 245,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "b9bec232-3d37-48a0-9ca8-62aab6c4083b@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "b9bec232-3d37-48a0-9ca8-62aab6c4083b@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/heart.png b/assets/resources/images/pageLevel/heart.png
new file mode 100644
index 0000000..74e5e4e
Binary files /dev/null and b/assets/resources/images/pageLevel/heart.png differ
diff --git a/assets/resources/images/pageLevel/heart.png.meta b/assets/resources/images/pageLevel/heart.png.meta
new file mode 100644
index 0000000..a2d0095
--- /dev/null
+++ b/assets/resources/images/pageLevel/heart.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "83e4a585-2ca9-485a-8ed5-b8782eafcc54",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "83e4a585-2ca9-485a-8ed5-b8782eafcc54@6c48a",
+ "displayName": "heart",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "83e4a585-2ca9-485a-8ed5-b8782eafcc54",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "83e4a585-2ca9-485a-8ed5-b8782eafcc54@f9941",
+ "displayName": "heart",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 618,
+ "height": 529,
+ "rawWidth": 618,
+ "rawHeight": 529,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -309,
+ -264.5,
+ 0,
+ 309,
+ -264.5,
+ 0,
+ -309,
+ 264.5,
+ 0,
+ 309,
+ 264.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 529,
+ 618,
+ 529,
+ 0,
+ 0,
+ 618,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -309,
+ -264.5,
+ 0
+ ],
+ "maxPos": [
+ 309,
+ 264.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "83e4a585-2ca9-485a-8ed5-b8782eafcc54@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "83e4a585-2ca9-485a-8ed5-b8782eafcc54@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/iconCrown.png b/assets/resources/images/pageLevel/iconCrown.png
new file mode 100644
index 0000000..1f39a02
Binary files /dev/null and b/assets/resources/images/pageLevel/iconCrown.png differ
diff --git a/assets/resources/images/pageLevel/iconCrown.png.meta b/assets/resources/images/pageLevel/iconCrown.png.meta
new file mode 100644
index 0000000..5b3da61
--- /dev/null
+++ b/assets/resources/images/pageLevel/iconCrown.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "62df15c5-20eb-4ab2-9b63-32bfbcce435b",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "62df15c5-20eb-4ab2-9b63-32bfbcce435b@6c48a",
+ "displayName": "iconCrown",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "62df15c5-20eb-4ab2-9b63-32bfbcce435b",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "62df15c5-20eb-4ab2-9b63-32bfbcce435b@f9941",
+ "displayName": "iconCrown",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0.5,
+ "offsetY": -3.5,
+ "trimX": 39,
+ "trimY": 57,
+ "width": 323,
+ "height": 293,
+ "rawWidth": 400,
+ "rawHeight": 400,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -161.5,
+ -146.5,
+ 0,
+ 161.5,
+ -146.5,
+ 0,
+ -161.5,
+ 146.5,
+ 0,
+ 161.5,
+ 146.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 39,
+ 343,
+ 362,
+ 343,
+ 39,
+ 50,
+ 362,
+ 50
+ ],
+ "nuv": [
+ 0.0975,
+ 0.125,
+ 0.905,
+ 0.125,
+ 0.0975,
+ 0.8575,
+ 0.905,
+ 0.8575
+ ],
+ "minPos": [
+ -161.5,
+ -146.5,
+ 0
+ ],
+ "maxPos": [
+ 161.5,
+ 146.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "62df15c5-20eb-4ab2-9b63-32bfbcce435b@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "62df15c5-20eb-4ab2-9b63-32bfbcce435b@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/progressBar.png b/assets/resources/images/pageLevel/progressBar.png
new file mode 100644
index 0000000..53fefe3
Binary files /dev/null and b/assets/resources/images/pageLevel/progressBar.png differ
diff --git a/assets/resources/images/pageLevel/progressBar.png.meta b/assets/resources/images/pageLevel/progressBar.png.meta
new file mode 100644
index 0000000..88a44dd
--- /dev/null
+++ b/assets/resources/images/pageLevel/progressBar.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "929dfe4e-9eab-48f1-a87d-344d51f07402",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "929dfe4e-9eab-48f1-a87d-344d51f07402@6c48a",
+ "displayName": "progressBar",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "929dfe4e-9eab-48f1-a87d-344d51f07402",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "929dfe4e-9eab-48f1-a87d-344d51f07402@f9941",
+ "displayName": "progressBar",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 928,
+ "height": 121,
+ "rawWidth": 928,
+ "rawHeight": 121,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 120,
+ "borderRight": 120,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -464,
+ -60.5,
+ 0,
+ 464,
+ -60.5,
+ 0,
+ -464,
+ 60.5,
+ 0,
+ 464,
+ 60.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 121,
+ 928,
+ 121,
+ 0,
+ 0,
+ 928,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -464,
+ -60.5,
+ 0
+ ],
+ "maxPos": [
+ 464,
+ 60.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "929dfe4e-9eab-48f1-a87d-344d51f07402@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "929dfe4e-9eab-48f1-a87d-344d51f07402@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/progressBarBg.png b/assets/resources/images/pageLevel/progressBarBg.png
new file mode 100644
index 0000000..3044dad
Binary files /dev/null and b/assets/resources/images/pageLevel/progressBarBg.png differ
diff --git a/assets/resources/images/pageLevel/progressBarBg.png.meta b/assets/resources/images/pageLevel/progressBarBg.png.meta
new file mode 100644
index 0000000..1926e25
--- /dev/null
+++ b/assets/resources/images/pageLevel/progressBarBg.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "c55e385b-97b7-4aa1-8888-cfd101e68f77",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "c55e385b-97b7-4aa1-8888-cfd101e68f77@6c48a",
+ "displayName": "progressBarBg",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "c55e385b-97b7-4aa1-8888-cfd101e68f77",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "c55e385b-97b7-4aa1-8888-cfd101e68f77@f9941",
+ "displayName": "progressBarBg",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0.5,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 966,
+ "height": 163,
+ "rawWidth": 966,
+ "rawHeight": 164,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -483,
+ -81.5,
+ 0,
+ 483,
+ -81.5,
+ 0,
+ -483,
+ 81.5,
+ 0,
+ 483,
+ 81.5,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 164,
+ 966,
+ 164,
+ 0,
+ 1,
+ 966,
+ 1
+ ],
+ "nuv": [
+ 0,
+ 0.006097560975609756,
+ 1,
+ 0.006097560975609756,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -483,
+ -81.5,
+ 0
+ ],
+ "maxPos": [
+ 483,
+ 81.5,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "c55e385b-97b7-4aa1-8888-cfd101e68f77@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "c55e385b-97b7-4aa1-8888-cfd101e68f77@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/sphere.png b/assets/resources/images/pageLevel/sphere.png
new file mode 100644
index 0000000..ce375ea
Binary files /dev/null and b/assets/resources/images/pageLevel/sphere.png differ
diff --git a/assets/resources/images/pageLevel/sphere.png.meta b/assets/resources/images/pageLevel/sphere.png.meta
new file mode 100644
index 0000000..3c32264
--- /dev/null
+++ b/assets/resources/images/pageLevel/sphere.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "7a17df33-9d28-4272-9f3e-f336af8d4afb",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "7a17df33-9d28-4272-9f3e-f336af8d4afb@6c48a",
+ "displayName": "sphere",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "7a17df33-9d28-4272-9f3e-f336af8d4afb",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "7a17df33-9d28-4272-9f3e-f336af8d4afb@f9941",
+ "displayName": "sphere",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 0,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 416,
+ "height": 416,
+ "rawWidth": 416,
+ "rawHeight": 416,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -208,
+ -208,
+ 0,
+ 208,
+ -208,
+ 0,
+ -208,
+ 208,
+ 0,
+ 208,
+ 208,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 416,
+ 416,
+ 416,
+ 0,
+ 0,
+ 416,
+ 0
+ ],
+ "nuv": [
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -208,
+ -208,
+ 0
+ ],
+ "maxPos": [
+ 208,
+ 208,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "7a17df33-9d28-4272-9f3e-f336af8d4afb@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "7a17df33-9d28-4272-9f3e-f336af8d4afb@6c48a"
+ }
+}
diff --git a/assets/resources/images/pageLevel/test.png b/assets/resources/images/pageLevel/test.png
deleted file mode 100644
index d296ae1..0000000
Binary files a/assets/resources/images/pageLevel/test.png and /dev/null differ
diff --git a/assets/resources/images/pageLevel/winBanner.png b/assets/resources/images/pageLevel/winBanner.png
new file mode 100644
index 0000000..cd31b77
Binary files /dev/null and b/assets/resources/images/pageLevel/winBanner.png differ
diff --git a/assets/resources/images/pageLevel/winBanner.png.meta b/assets/resources/images/pageLevel/winBanner.png.meta
new file mode 100644
index 0000000..7d52aee
--- /dev/null
+++ b/assets/resources/images/pageLevel/winBanner.png.meta
@@ -0,0 +1,134 @@
+{
+ "ver": "1.0.27",
+ "importer": "image",
+ "imported": true,
+ "uuid": "4c29b5fc-64c2-4fbd-b220-a4388daebc0a",
+ "files": [
+ ".json",
+ ".png"
+ ],
+ "subMetas": {
+ "6c48a": {
+ "importer": "texture",
+ "uuid": "4c29b5fc-64c2-4fbd-b220-a4388daebc0a@6c48a",
+ "displayName": "winBanner",
+ "id": "6c48a",
+ "name": "texture",
+ "userData": {
+ "wrapModeS": "clamp-to-edge",
+ "wrapModeT": "clamp-to-edge",
+ "imageUuidOrDatabaseUri": "4c29b5fc-64c2-4fbd-b220-a4388daebc0a",
+ "isUuid": true,
+ "visible": false,
+ "minfilter": "linear",
+ "magfilter": "linear",
+ "mipfilter": "none",
+ "anisotropy": 0
+ },
+ "ver": "1.0.22",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ },
+ "f9941": {
+ "importer": "sprite-frame",
+ "uuid": "4c29b5fc-64c2-4fbd-b220-a4388daebc0a@f9941",
+ "displayName": "winBanner",
+ "id": "f9941",
+ "name": "spriteFrame",
+ "userData": {
+ "trimThreshold": 1,
+ "rotated": false,
+ "offsetX": 0,
+ "offsetY": 3.5,
+ "trimX": 0,
+ "trimY": 0,
+ "width": 1131,
+ "height": 606,
+ "rawWidth": 1131,
+ "rawHeight": 613,
+ "borderTop": 0,
+ "borderBottom": 0,
+ "borderLeft": 0,
+ "borderRight": 0,
+ "packable": true,
+ "pixelsToUnit": 100,
+ "pivotX": 0.5,
+ "pivotY": 0.5,
+ "meshType": 0,
+ "vertices": {
+ "rawPosition": [
+ -565.5,
+ -303,
+ 0,
+ 565.5,
+ -303,
+ 0,
+ -565.5,
+ 303,
+ 0,
+ 565.5,
+ 303,
+ 0
+ ],
+ "indexes": [
+ 0,
+ 1,
+ 2,
+ 2,
+ 1,
+ 3
+ ],
+ "uv": [
+ 0,
+ 613,
+ 1131,
+ 613,
+ 0,
+ 7,
+ 1131,
+ 7
+ ],
+ "nuv": [
+ 0,
+ 0.011419249592169658,
+ 1,
+ 0.011419249592169658,
+ 0,
+ 1,
+ 1,
+ 1
+ ],
+ "minPos": [
+ -565.5,
+ -303,
+ 0
+ ],
+ "maxPos": [
+ 565.5,
+ 303,
+ 0
+ ]
+ },
+ "isUuid": true,
+ "imageUuidOrDatabaseUri": "4c29b5fc-64c2-4fbd-b220-a4388daebc0a@6c48a",
+ "atlasUuid": "",
+ "trimType": "auto"
+ },
+ "ver": "1.0.12",
+ "imported": true,
+ "files": [
+ ".json"
+ ],
+ "subMetas": {}
+ }
+ },
+ "userData": {
+ "type": "sprite-frame",
+ "fixAlphaTransparencyArtifacts": false,
+ "hasAlpha": true,
+ "redirect": "4c29b5fc-64c2-4fbd-b220-a4388daebc0a@6c48a"
+ }
+}
diff --git a/assets/scripts/config/AchievementTitleConfig.ts b/assets/scripts/config/AchievementTitleConfig.ts
new file mode 100644
index 0000000..001d5d5
--- /dev/null
+++ b/assets/scripts/config/AchievementTitleConfig.ts
@@ -0,0 +1,31 @@
+export interface AchievementTitleConfigItem {
+ readonly seriesName: string;
+ readonly levelName: string;
+ readonly clearsToNext: number;
+}
+
+const createSeries = (seriesName: string, levelCount: number, clearsToNext: number): AchievementTitleConfigItem[] => {
+ return Array.from({ length: levelCount }, (_, index) => ({
+ seriesName,
+ levelName: `${seriesName}${index + 1}级`,
+ clearsToNext
+ }));
+};
+
+export const ACHIEVEMENT_TITLE_CONFIG: readonly AchievementTitleConfigItem[] = [
+ ...createSeries('冷场小白', 2, 3),
+ ...createSeries('尬笑学生', 2, 3),
+ ...createSeries('浅梗游民', 3, 4),
+ ...createSeries('热梗新秀', 6, 5),
+ ...createSeries('笑点刺客', 6, 5),
+ ...createSeries('爆梗高手', 8, 6),
+ ...createSeries('幽默大师', 10, 8),
+ ...createSeries('爆笑领主', 10, 8),
+ ...createSeries('梗王之王', 20, 8)
+];
+
+export const INFINITE_ACHIEVEMENT_TITLE = {
+ seriesName: '幽默始祖',
+ levelNamePrefix: '幽默始祖',
+ clearsToNext: 8
+} as const;
diff --git a/assets/scripts/config/AchievementTitleConfig.ts.meta b/assets/scripts/config/AchievementTitleConfig.ts.meta
new file mode 100644
index 0000000..37ddae6
--- /dev/null
+++ b/assets/scripts/config/AchievementTitleConfig.ts.meta
@@ -0,0 +1,9 @@
+{
+ "ver": "4.0.24",
+ "importer": "typescript",
+ "imported": true,
+ "uuid": "eb65203d-ee3d-4169-806d-1de88d9702eb",
+ "files": [],
+ "subMetas": {},
+ "userData": {}
+}
diff --git a/assets/scripts/core/BaseModal.ts b/assets/scripts/core/BaseModal.ts
new file mode 100644
index 0000000..8777ff7
--- /dev/null
+++ b/assets/scripts/core/BaseModal.ts
@@ -0,0 +1,102 @@
+import { _decorator, Node, Tween, UIOpacity, Vec3, tween } from 'cc';
+import { BaseView } from './BaseView';
+const { ccclass, property } = _decorator;
+
+@ccclass('BaseModal')
+export class BaseModal extends BaseView {
+ @property([Node])
+ protected animationNodes: Node[] = [];
+
+ @property(Node)
+ protected backdropNode: Node | null = null;
+
+ @property
+ protected openAnimationEnabled: boolean = true;
+
+ @property
+ protected openAnimationDuration: number = 0.36;
+
+ private readonly _originalScales: Map = new Map();
+
+ onViewShow(): void {
+ this.playOpenAnimation();
+ }
+
+ onViewHide(): void {
+ this.stopOpenAnimation();
+ }
+
+ protected playOpenAnimation(): void {
+ if (!this.openAnimationEnabled) {
+ return;
+ }
+
+ this.playBackdropFadeIn();
+
+ const targets = this.getAnimationTargets();
+ targets.forEach((target, index) => {
+ this.playBounceIn(target, index * 0.035);
+ });
+ }
+
+ protected stopOpenAnimation(): void {
+ this.getAnimationTargets().forEach((target) => {
+ Tween.stopAllByTarget(target);
+ });
+
+ const opacity = this.backdropNode?.getComponent(UIOpacity);
+ if (opacity) {
+ Tween.stopAllByTarget(opacity);
+ }
+ }
+
+ private getAnimationTargets(): Node[] {
+ const configuredTargets = this.animationNodes.filter((node) => node?.isValid);
+ return configuredTargets.length > 0 ? configuredTargets : [this.node];
+ }
+
+ private getOriginalScale(target: Node): Vec3 {
+ const cachedScale = this._originalScales.get(target);
+ if (cachedScale) {
+ return cachedScale;
+ }
+
+ const originalScale = target.scale.clone();
+ this._originalScales.set(target, originalScale);
+ return originalScale;
+ }
+
+ private playBounceIn(target: Node, delay: number): void {
+ const originalScale = this.getOriginalScale(target);
+ const startScale = this.multiplyScale(originalScale, 0.82);
+ const peakScale = this.multiplyScale(originalScale, 1.045);
+
+ Tween.stopAllByTarget(target);
+ target.setScale(startScale);
+
+ tween(target)
+ .delay(delay)
+ .to(this.openAnimationDuration * 0.58, { scale: peakScale }, { easing: 'backOut' })
+ .to(this.openAnimationDuration * 0.24, { scale: this.multiplyScale(originalScale, 0.985) }, { easing: 'sineOut' })
+ .to(this.openAnimationDuration * 0.18, { scale: originalScale }, { easing: 'sineOut' })
+ .start();
+ }
+
+ private playBackdropFadeIn(): void {
+ if (!this.backdropNode?.isValid) {
+ return;
+ }
+
+ const opacity = this.backdropNode.getComponent(UIOpacity) ?? this.backdropNode.addComponent(UIOpacity);
+ Tween.stopAllByTarget(opacity);
+ opacity.opacity = 0;
+
+ tween(opacity)
+ .to(0.18, { opacity: 255 }, { easing: 'sineOut' })
+ .start();
+ }
+
+ private multiplyScale(scale: Vec3, factor: number): Vec3 {
+ return new Vec3(scale.x * factor, scale.y * factor, scale.z);
+ }
+}
diff --git a/assets/scripts/core/BaseModal.ts.meta b/assets/scripts/core/BaseModal.ts.meta
new file mode 100644
index 0000000..23cb694
--- /dev/null
+++ b/assets/scripts/core/BaseModal.ts.meta
@@ -0,0 +1,9 @@
+{
+ "ver": "4.0.24",
+ "importer": "typescript",
+ "imported": true,
+ "uuid": "981df4d4-68c1-4651-aa5b-44633c119e93",
+ "files": [],
+ "subMetas": {},
+ "userData": {}
+}
diff --git a/assets/scripts/types/ApiTypes.ts b/assets/scripts/types/ApiTypes.ts
index 1140369..1b633d7 100644
--- a/assets/scripts/types/ApiTypes.ts
+++ b/assets/scripts/types/ApiTypes.ts
@@ -44,6 +44,7 @@ export interface GameData {
stamina: StaminaInfo;
};
completedLevelIds: string[];
+ completedLevelCount?: number;
}
/** 关卡列表项 */
diff --git a/assets/scripts/utils/AchievementTitleManager.ts b/assets/scripts/utils/AchievementTitleManager.ts
new file mode 100644
index 0000000..dafbc04
--- /dev/null
+++ b/assets/scripts/utils/AchievementTitleManager.ts
@@ -0,0 +1,111 @@
+import { ACHIEVEMENT_TITLE_CONFIG, AchievementTitleConfigItem, INFINITE_ACHIEVEMENT_TITLE } from '../config/AchievementTitleConfig';
+
+export interface AchievementTitleInfo {
+ readonly titleText: string;
+ readonly nextTitleText: string;
+ readonly nextTitleProgress: number;
+ readonly progressText: string;
+ readonly completedLevelCount: number;
+ readonly currentTitleStartCount: number;
+ readonly nextTitleRequiredCount: number;
+ readonly remainingToNextTitle: number;
+}
+
+interface AchievementTitleStage {
+ readonly titleText: string;
+ readonly clearsToNext: number;
+ readonly startCount: number;
+}
+
+export class AchievementTitleManager {
+ public static getTitleInfo(completedLevelCount: number): AchievementTitleInfo {
+ const safeCompletedCount = AchievementTitleManager.normalizeCompletedCount(completedLevelCount);
+ const stages = AchievementTitleManager.buildFiniteStages();
+ const finiteResult = AchievementTitleManager.findFiniteStage(safeCompletedCount, stages);
+
+ if (finiteResult) {
+ return AchievementTitleManager.createTitleInfo(safeCompletedCount, finiteResult.currentStage, finiteResult.nextStage);
+ }
+
+ return AchievementTitleManager.createInfiniteTitleInfo(safeCompletedCount, stages[stages.length - 1]);
+ }
+
+ private static normalizeCompletedCount(completedLevelCount: number): number {
+ if (!Number.isFinite(completedLevelCount) || completedLevelCount < 0) {
+ return 0;
+ }
+
+ return Math.floor(completedLevelCount);
+ }
+
+ private static buildFiniteStages(): AchievementTitleStage[] {
+ let startCount = 0;
+
+ return ACHIEVEMENT_TITLE_CONFIG.map((item: AchievementTitleConfigItem) => {
+ const stage: AchievementTitleStage = {
+ titleText: item.levelName,
+ clearsToNext: item.clearsToNext,
+ startCount
+ };
+ startCount += item.clearsToNext;
+ return stage;
+ });
+ }
+
+ private static findFiniteStage(completedLevelCount: number, stages: AchievementTitleStage[]): { currentStage: AchievementTitleStage; nextStage: AchievementTitleStage } | null {
+ for (let index = 0; index < stages.length; index++) {
+ const currentStage = stages[index];
+ const nextStage = stages[index + 1] ?? {
+ titleText: `${INFINITE_ACHIEVEMENT_TITLE.levelNamePrefix}1级`,
+ clearsToNext: INFINITE_ACHIEVEMENT_TITLE.clearsToNext,
+ startCount: currentStage.startCount + currentStage.clearsToNext
+ };
+
+ if (completedLevelCount < nextStage.startCount) {
+ return { currentStage, nextStage };
+ }
+ }
+
+ return null;
+ }
+
+ private static createInfiniteTitleInfo(completedLevelCount: number, lastFiniteStage: AchievementTitleStage): AchievementTitleInfo {
+ const infiniteStartCount = lastFiniteStage.startCount + lastFiniteStage.clearsToNext;
+ const completedAfterInfiniteStart = Math.max(0, completedLevelCount - infiniteStartCount);
+ const currentInfiniteLevel = Math.floor(completedAfterInfiniteStart / INFINITE_ACHIEVEMENT_TITLE.clearsToNext) + 1;
+ const currentStageStartCount = infiniteStartCount + (currentInfiniteLevel - 1) * INFINITE_ACHIEVEMENT_TITLE.clearsToNext;
+ const nextStage: AchievementTitleStage = {
+ titleText: `${INFINITE_ACHIEVEMENT_TITLE.levelNamePrefix}${currentInfiniteLevel + 1}级`,
+ clearsToNext: INFINITE_ACHIEVEMENT_TITLE.clearsToNext,
+ startCount: currentStageStartCount + INFINITE_ACHIEVEMENT_TITLE.clearsToNext
+ };
+
+ return AchievementTitleManager.createTitleInfo(
+ completedLevelCount,
+ {
+ titleText: `${INFINITE_ACHIEVEMENT_TITLE.levelNamePrefix}${currentInfiniteLevel}级`,
+ clearsToNext: INFINITE_ACHIEVEMENT_TITLE.clearsToNext,
+ startCount: currentStageStartCount
+ },
+ nextStage
+ );
+ }
+
+ private static createTitleInfo(completedLevelCount: number, currentStage: AchievementTitleStage, nextStage: AchievementTitleStage): AchievementTitleInfo {
+ const interval = Math.max(1, nextStage.startCount - currentStage.startCount);
+ const completedInCurrentTitle = Math.max(0, completedLevelCount - currentStage.startCount);
+ const remainingToNextTitle = Math.max(0, nextStage.startCount - completedLevelCount);
+ const nextTitleProgress = Math.max(0, Math.min(1, completedInCurrentTitle / interval));
+
+ return {
+ titleText: currentStage.titleText,
+ nextTitleText: nextStage.titleText,
+ nextTitleProgress,
+ progressText: `还差${remainingToNextTitle}题获得${nextStage.titleText}`,
+ completedLevelCount,
+ currentTitleStartCount: currentStage.startCount,
+ nextTitleRequiredCount: nextStage.startCount,
+ remainingToNextTitle
+ };
+ }
+}
diff --git a/assets/scripts/utils/AchievementTitleManager.ts.meta b/assets/scripts/utils/AchievementTitleManager.ts.meta
new file mode 100644
index 0000000..1565a8c
--- /dev/null
+++ b/assets/scripts/utils/AchievementTitleManager.ts.meta
@@ -0,0 +1,9 @@
+{
+ "ver": "4.0.24",
+ "importer": "typescript",
+ "imported": true,
+ "uuid": "a97f1641-1123-4458-9fb5-3b3f74e314a9",
+ "files": [],
+ "subMetas": {},
+ "userData": {}
+}
diff --git a/assets/scripts/utils/AuthManager.ts b/assets/scripts/utils/AuthManager.ts
index c1f379a..ad6e090 100644
--- a/assets/scripts/utils/AuthManager.ts
+++ b/assets/scripts/utils/AuthManager.ts
@@ -15,6 +15,8 @@ export class AuthManager {
private _isLoggedIn: boolean = false;
/** 服务端返回的已完成关卡 ID(登录后暂存,等 LevelDataManager 就绪后同步) */
private _completedLevelIds: string[] = [];
+ /** 服务端返回的已完成关卡数量,用于称号体系计算 */
+ private _completedLevelCount: number = 0;
static get instance(): AuthManager {
if (!this._instance) {
@@ -37,6 +39,14 @@ export class AuthManager {
return this._completedLevelIds;
}
+ get completedLevelCount(): number {
+ return this._completedLevelCount;
+ }
+
+ addCompletedLevelCount(delta: number = 1): void {
+ this._completedLevelCount = Math.max(0, this._completedLevelCount + delta);
+ }
+
/**
* 初始化认证:尝试恢复 token 或执行微信登录
*/
@@ -109,8 +119,9 @@ export class AuthManager {
this._isLoggedIn = true;
StorageManager.setStamina(gameData.user.stamina);
this._completedLevelIds = gameData.completedLevelIds;
+ this._completedLevelCount = this._resolveCompletedLevelCount(gameData);
- console.log(`[AuthManager] Token 验证成功,体力: ${gameData.user.stamina.current}/${gameData.user.stamina.max},已完成: ${this._completedLevelIds.length} 关`);
+ console.log(`[AuthManager] Token 验证成功,体力: ${gameData.user.stamina.current}/${gameData.user.stamina.max},已完成: ${this._completedLevelCount} 关`);
return true;
}
@@ -121,6 +132,7 @@ export class AuthManager {
const gameData = await this._fetchGameData();
if (gameData) {
this._completedLevelIds = gameData.completedLevelIds;
+ this._completedLevelCount = this._resolveCompletedLevelCount(gameData);
StorageManager.setStamina(gameData.user.stamina);
}
}
@@ -140,4 +152,8 @@ export class AuthManager {
return null;
}
}
+
+ private _resolveCompletedLevelCount(gameData: GameData): number {
+ return gameData.completedLevelCount ?? gameData.completedLevelIds.length;
+ }
}