diff --git a/assets/Scene/GameScene.fire b/assets/Scene/GameScene.fire index f9f688d..8a5a7ec 100644 --- a/assets/Scene/GameScene.fire +++ b/assets/Scene/GameScene.fire @@ -17,7 +17,7 @@ "__id__": 2 }, { - "__id__": 296 + "__id__": 303 } ], "_active": false, @@ -81,31 +81,31 @@ "__id__": 7 }, { - "__id__": 258 + "__id__": 263 }, { - "__id__": 261 + "__id__": 267 }, { - "__id__": 286 + "__id__": 292 }, { - "__id__": 303 + "__id__": 298 } ], "_active": true, "_components": [ { - "__id__": 292 + "__id__": 299 }, { - "__id__": 293 + "__id__": 300 }, { - "__id__": 294 + "__id__": 301 }, { - "__id__": 295 + "__id__": 302 } ], "_prefab": null, @@ -363,16 +363,16 @@ "__id__": 11 }, { - "__id__": 250 + "__id__": 255 }, { - "__id__": 177 + "__id__": 182 } ], "_active": true, "_components": [ { - "__id__": 257 + "__id__": 262 } ], "_prefab": null, @@ -562,25 +562,25 @@ "__id__": 15 }, { - "__id__": 67 + "__id__": 72 }, { - "__id__": 219 + "__id__": 224 }, { - "__id__": 95 + "__id__": 100 }, { - "__id__": 244 + "__id__": 249 }, { - "__id__": 161 + "__id__": 166 } ], "_active": true, "_components": [ { - "__id__": 249 + "__id__": 254 } ], "_prefab": null, @@ -806,13 +806,13 @@ "__id__": 62 }, { - "__id__": 298 + "__id__": 66 } ], "_active": true, "_components": [ { - "__id__": 66 + "__id__": 71 } ], "_prefab": null, @@ -3360,6 +3360,249 @@ "handler": "shareFriend", "customEventData": "" }, + { + "__type__": "cc.Node", + "_name": "tip", + "_objFlags": 0, + "_parent": { + "__id__": 15 + }, + "_children": [ + { + "__id__": 67 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e4LIw406xPc6DLoPDZ9wmy" + }, + { + "__type__": "cc.Node", + "_name": "GameplayInfoButton", + "_objFlags": 0, + "_parent": { + "__id__": 66 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 68 + }, + { + "__id__": 69 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 82.66666666666667, + "height": 88 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 282, + -60.562, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "Vg/+kIt8y9qkYZSB/Xx8wA" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 67 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d9333256-302a-403b-93bf-e25c42829476" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "7urvt+4r1Eol9iPd9AAi5Q" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 67 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 70 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 0, + "transition": 0, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 67 + }, + "_id": "4y6hgv/WvY4E/88bmCerjg" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "80998T1AYNNRZdRxsVvXR65", + "handler": "openGameplayIntro", + "customEventData": "" + }, { "__type__": "cc.Widget", "_name": "", @@ -3395,12 +3638,6 @@ "__id__": 11 }, "_children": [ - { - "__id__": 68 - }, - { - "__id__": 70 - }, { "__id__": 73 }, @@ -3408,34 +3645,40 @@ "__id__": 75 }, { - "__id__": 111 + "__id__": 78 }, { - "__id__": 130 + "__id__": 80 }, { - "__id__": 208 + "__id__": 116 }, { - "__id__": 151 + "__id__": 135 }, { - "__id__": 214 + "__id__": 213 }, { - "__id__": 204 + "__id__": 156 }, { - "__id__": 201 + "__id__": 219 }, { - "__id__": 198 + "__id__": 209 + }, + { + "__id__": 206 + }, + { + "__id__": 203 } ], "_active": true, "_components": [ { - "__id__": 218 + "__id__": 223 } ], "_prefab": null, @@ -3491,13 +3734,13 @@ "_name": "floor", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [], "_active": true, "_components": [ { - "__id__": 69 + "__id__": 74 } ], "_prefab": null, @@ -3553,7 +3796,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 68 + "__id__": 73 }, "_enabled": true, "_materials": [ @@ -3585,16 +3828,16 @@ "_name": "rippleShrink", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [], "_active": true, "_components": [ { - "__id__": 71 + "__id__": 76 }, { - "__id__": 72 + "__id__": 77 } ], "_prefab": null, @@ -3650,7 +3893,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 70 + "__id__": 75 }, "_enabled": true, "_materials": [ @@ -3682,11 +3925,11 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 70 + "__id__": 75 }, "_enabled": true, "targetSprite": { - "__id__": 71 + "__id__": 76 }, "_id": "daDAcxz0pKR41QD4CmHiJa" }, @@ -3695,13 +3938,13 @@ "_name": "version", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [], "_active": true, "_components": [ { - "__id__": 74 + "__id__": 79 } ], "_prefab": null, @@ -3757,7 +4000,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 73 + "__id__": 78 }, "_enabled": true, "_materials": [ @@ -3790,32 +4033,32 @@ "_name": "timeBtn", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [ { - "__id__": 76 + "__id__": 81 }, { - "__id__": 78 + "__id__": 83 }, { - "__id__": 84 + "__id__": 89 }, { - "__id__": 86 + "__id__": 91 } ], "_active": true, "_components": [ { - "__id__": 92 + "__id__": 97 }, { - "__id__": 93 + "__id__": 98 }, { - "__id__": 207 + "__id__": 212 } ], "_prefab": null, @@ -3871,13 +4114,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 75 + "__id__": 80 }, "_children": [], "_active": true, "_components": [ { - "__id__": 77 + "__id__": 82 } ], "_prefab": null, @@ -3933,7 +4176,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 76 + "__id__": 81 }, "_enabled": true, "_materials": [ @@ -3967,17 +4210,17 @@ "_name": "mul10", "_objFlags": 0, "_parent": { - "__id__": 75 + "__id__": 80 }, "_children": [ { - "__id__": 79 + "__id__": 84 }, { - "__id__": 81 + "__id__": 86 }, { - "__id__": 83 + "__id__": 88 } ], "_active": true, @@ -4035,13 +4278,13 @@ "_name": "mul10", "_objFlags": 0, "_parent": { - "__id__": 78 + "__id__": 83 }, "_children": [], "_active": false, "_components": [ { - "__id__": 80 + "__id__": 85 } ], "_prefab": null, @@ -4097,7 +4340,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 79 + "__id__": 84 }, "_enabled": true, "_materials": [ @@ -4131,13 +4374,13 @@ "_name": "didaoju", "_objFlags": 0, "_parent": { - "__id__": 78 + "__id__": 83 }, "_children": [], "_active": false, "_components": [ { - "__id__": 82 + "__id__": 87 } ], "_prefab": null, @@ -4193,7 +4436,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 81 + "__id__": 86 }, "_enabled": true, "_materials": [ @@ -4225,7 +4468,7 @@ "_name": "New Node", "_objFlags": 0, "_parent": { - "__id__": 78 + "__id__": 83 }, "_children": [], "_active": false, @@ -4283,13 +4526,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 75 + "__id__": 80 }, "_children": [], "_active": false, "_components": [ { - "__id__": 85 + "__id__": 90 } ], "_prefab": null, @@ -4345,7 +4588,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 84 + "__id__": 89 }, "_enabled": true, "_materials": [ @@ -4378,20 +4621,20 @@ "_name": "lock", "_objFlags": 0, "_parent": { - "__id__": 75 + "__id__": 80 }, "_children": [ { - "__id__": 87 + "__id__": 92 }, { - "__id__": 89 + "__id__": 94 } ], "_active": false, "_components": [ { - "__id__": 91 + "__id__": 96 } ], "_prefab": null, @@ -4447,13 +4690,13 @@ "_name": "coin_2", "_objFlags": 0, "_parent": { - "__id__": 86 + "__id__": 91 }, "_children": [], "_active": true, "_components": [ { - "__id__": 88 + "__id__": 93 } ], "_prefab": null, @@ -4509,7 +4752,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 87 + "__id__": 92 }, "_enabled": true, "_materials": [ @@ -4543,13 +4786,13 @@ "_name": "mul8", "_objFlags": 0, "_parent": { - "__id__": 86 + "__id__": 91 }, "_children": [], "_active": true, "_components": [ { - "__id__": 90 + "__id__": 95 } ], "_prefab": null, @@ -4605,7 +4848,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 89 + "__id__": 94 }, "_enabled": true, "_materials": [ @@ -4639,7 +4882,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 86 + "__id__": 91 }, "_enabled": true, "_materials": [ @@ -4673,7 +4916,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 75 + "__id__": 80 }, "_enabled": true, "_materials": [ @@ -4707,7 +4950,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 75 + "__id__": 80 }, "_enabled": true, "_normalMaterial": null, @@ -4716,7 +4959,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 94 + "__id__": 99 } ], "_N$interactable": true, @@ -4772,14 +5015,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 75 + "__id__": 80 }, "_id": "a5N58fd3JDfatNn1yJULjP" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 95 + "__id__": 100 }, "component": "", "_componentId": "2234assp7RIvpDgrnqljp2R", @@ -4795,28 +5038,28 @@ }, "_children": [ { - "__id__": 96 - }, - { - "__id__": 97 - }, - { - "__id__": 98 - }, - { - "__id__": 99 + "__id__": 101 }, { "__id__": 102 }, + { + "__id__": 103 + }, + { + "__id__": 104 + }, { "__id__": 107 + }, + { + "__id__": 112 } ], "_active": true, "_components": [ { - "__id__": 109 + "__id__": 114 } ], "_prefab": null, @@ -4872,7 +5115,7 @@ "_name": "mapBlock", "_objFlags": 0, "_parent": { - "__id__": 95 + "__id__": 100 }, "_children": [], "_active": true, @@ -4930,7 +5173,7 @@ "_name": "Wall", "_objFlags": 0, "_parent": { - "__id__": 95 + "__id__": 100 }, "_children": [], "_active": true, @@ -4988,7 +5231,7 @@ "_name": "Adhesive", "_objFlags": 0, "_parent": { - "__id__": 95 + "__id__": 100 }, "_children": [], "_active": true, @@ -5046,16 +5289,16 @@ "_name": "guide", "_objFlags": 0, "_parent": { - "__id__": 95 + "__id__": 100 }, "_children": [], "_active": false, "_components": [ { - "__id__": 100 + "__id__": 105 }, { - "__id__": 101 + "__id__": 106 } ], "_prefab": null, @@ -5111,7 +5354,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 99 + "__id__": 104 }, "_enabled": true, "_materials": [ @@ -5143,7 +5386,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 99 + "__id__": 104 }, "_enabled": true, "_defaultClip": { @@ -5162,19 +5405,19 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 95 + "__id__": 100 }, "_children": [], "_active": false, "_components": [ { - "__id__": 103 + "__id__": 108 }, { - "__id__": 104 + "__id__": 109 }, { - "__id__": 106 + "__id__": 111 } ], "_prefab": null, @@ -5230,7 +5473,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 107 }, "_enabled": true, "_materials": [ @@ -5264,7 +5507,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 107 }, "_enabled": true, "_normalMaterial": null, @@ -5273,7 +5516,7 @@ "zoomScale": 1.2, "clickEvents": [ { - "__id__": 105 + "__id__": 110 } ], "_N$interactable": true, @@ -5329,14 +5572,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 102 + "__id__": 107 }, "_id": "00FTYmsfBFJZi0WdpVBbZJ" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 95 + "__id__": 100 }, "component": "", "_componentId": "2234assp7RIvpDgrnqljp2R", @@ -5348,7 +5591,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 102 + "__id__": 107 }, "_enabled": true, "alignMode": 1, @@ -5375,13 +5618,13 @@ "_name": "chuiziyanwu", "_objFlags": 0, "_parent": { - "__id__": 95 + "__id__": 100 }, "_children": [], "_active": false, "_components": [ { - "__id__": 108 + "__id__": 113 } ], "_prefab": null, @@ -5437,7 +5680,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 107 + "__id__": 112 }, "_enabled": true, "_materials": [ @@ -5479,7 +5722,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 95 + "__id__": 100 }, "_enabled": true, "fontUI": { @@ -5580,51 +5823,51 @@ "__uuid__": "942f9428-8f09-459b-b880-ebbc3691b604" }, "timeBtn": { - "__id__": 93 + "__id__": 98 }, "destroyBtn": { - "__id__": 110 + "__id__": 115 }, "magicBtn": { - "__id__": 129 + "__id__": 134 }, "winStreakBtn": { - "__id__": 150 + "__id__": 155 }, "magics": { - "__id__": 161 + "__id__": 166 }, "mask": { "__id__": 5 }, "guideItem": { - "__id__": 177 + "__id__": 182 }, "guideMaskPrefab": { "__uuid__": "62391d59-5d78-42be-917a-51096e036cb4" }, "itemLock": [ { - "__id__": 122 + "__id__": 127 }, { - "__id__": 86 + "__id__": 91 }, { - "__id__": 141 + "__id__": 146 } ], "iceLabel": null, "hammerLabel": null, "magicLabel": null, "iceNode": { - "__id__": 78 + "__id__": 83 }, "hammerNode": { - "__id__": 116 + "__id__": 121 }, "magicNode": { - "__id__": 133 + "__id__": 138 }, "icetimeNode": [ { @@ -5638,19 +5881,19 @@ } ], "magicMask": { - "__id__": 198 + "__id__": 203 }, "hammerMask": { - "__id__": 201 + "__id__": 206 }, "freezeMask": { - "__id__": 204 + "__id__": 209 }, "guideNode": { - "__id__": 99 + "__id__": 104 }, "hammerAni": { - "__id__": 107 + "__id__": 112 }, "coinPop": null, "gameOverNode": null, @@ -5666,7 +5909,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 111 + "__id__": 116 }, "_enabled": true, "_normalMaterial": null, @@ -5675,7 +5918,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 128 + "__id__": 133 } ], "_N$interactable": true, @@ -5731,7 +5974,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 111 + "__id__": 116 }, "_id": "37kLzoX/5ETIkOp2zQsq9p" }, @@ -5740,32 +5983,32 @@ "_name": "destroyBtn", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [ { - "__id__": 112 + "__id__": 117 }, { - "__id__": 114 + "__id__": 119 }, { - "__id__": 116 + "__id__": 121 }, { - "__id__": 122 + "__id__": 127 } ], "_active": true, "_components": [ { - "__id__": 126 + "__id__": 131 }, { - "__id__": 110 + "__id__": 115 }, { - "__id__": 127 + "__id__": 132 } ], "_prefab": null, @@ -5821,13 +6064,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 111 + "__id__": 116 }, "_children": [], "_active": true, "_components": [ { - "__id__": 113 + "__id__": 118 } ], "_prefab": null, @@ -5883,7 +6126,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 112 + "__id__": 117 }, "_enabled": true, "_materials": [ @@ -5917,13 +6160,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 111 + "__id__": 116 }, "_children": [], "_active": false, "_components": [ { - "__id__": 115 + "__id__": 120 } ], "_prefab": null, @@ -5979,7 +6222,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 114 + "__id__": 119 }, "_enabled": true, "_materials": [ @@ -6012,17 +6255,17 @@ "_name": "mul10", "_objFlags": 0, "_parent": { - "__id__": 111 + "__id__": 116 }, "_children": [ { - "__id__": 117 + "__id__": 122 }, { - "__id__": 119 + "__id__": 124 }, { - "__id__": 121 + "__id__": 126 } ], "_active": true, @@ -6080,13 +6323,13 @@ "_name": "mul10", "_objFlags": 0, "_parent": { - "__id__": 116 + "__id__": 121 }, "_children": [], "_active": false, "_components": [ { - "__id__": 118 + "__id__": 123 } ], "_prefab": null, @@ -6142,7 +6385,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 117 + "__id__": 122 }, "_enabled": true, "_materials": [ @@ -6176,13 +6419,13 @@ "_name": "didaoju", "_objFlags": 0, "_parent": { - "__id__": 116 + "__id__": 121 }, "_children": [], "_active": false, "_components": [ { - "__id__": 120 + "__id__": 125 } ], "_prefab": null, @@ -6238,7 +6481,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 124 }, "_enabled": true, "_materials": [ @@ -6270,7 +6513,7 @@ "_name": "New Node", "_objFlags": 0, "_parent": { - "__id__": 116 + "__id__": 121 }, "_children": [], "_active": false, @@ -6328,17 +6571,17 @@ "_name": "lock", "_objFlags": 0, "_parent": { - "__id__": 111 + "__id__": 116 }, "_children": [ { - "__id__": 123 + "__id__": 128 } ], "_active": false, "_components": [ { - "__id__": 125 + "__id__": 130 } ], "_prefab": null, @@ -6394,13 +6637,13 @@ "_name": "tili_8", "_objFlags": 0, "_parent": { - "__id__": 122 + "__id__": 127 }, "_children": [], "_active": true, "_components": [ { - "__id__": 124 + "__id__": 129 } ], "_prefab": null, @@ -6456,7 +6699,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 123 + "__id__": 128 }, "_enabled": true, "_materials": [ @@ -6490,7 +6733,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 122 + "__id__": 127 }, "_enabled": true, "_materials": [ @@ -6524,7 +6767,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 111 + "__id__": 116 }, "_enabled": true, "_materials": [ @@ -6558,7 +6801,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 111 + "__id__": 116 }, "_enabled": true, "_id": "dekCrxpChCv7UV5uQ+seyc" @@ -6566,7 +6809,7 @@ { "__type__": "cc.ClickEvent", "target": { - "__id__": 95 + "__id__": 100 }, "component": "", "_componentId": "2234assp7RIvpDgrnqljp2R", @@ -6578,7 +6821,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 130 + "__id__": 135 }, "_enabled": true, "_normalMaterial": null, @@ -6587,7 +6830,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 149 + "__id__": 154 } ], "_N$interactable": true, @@ -6643,7 +6886,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 130 + "__id__": 135 }, "_id": "13iXPcjuVGtZpauFnVUGQE" }, @@ -6652,32 +6895,32 @@ "_name": "magicBtn", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [ { - "__id__": 131 + "__id__": 136 }, { - "__id__": 133 + "__id__": 138 }, { - "__id__": 139 + "__id__": 144 }, { - "__id__": 141 + "__id__": 146 } ], "_active": true, "_components": [ { - "__id__": 147 + "__id__": 152 }, { - "__id__": 129 + "__id__": 134 }, { - "__id__": 148 + "__id__": 153 } ], "_prefab": null, @@ -6733,13 +6976,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 135 }, "_children": [], "_active": true, "_components": [ { - "__id__": 132 + "__id__": 137 } ], "_prefab": null, @@ -6795,7 +7038,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 131 + "__id__": 136 }, "_enabled": true, "_materials": [ @@ -6829,17 +7072,17 @@ "_name": "mul10", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 135 }, "_children": [ { - "__id__": 134 + "__id__": 139 }, { - "__id__": 136 + "__id__": 141 }, { - "__id__": 138 + "__id__": 143 } ], "_active": true, @@ -6897,13 +7140,13 @@ "_name": "mul10", "_objFlags": 0, "_parent": { - "__id__": 133 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 135 + "__id__": 140 } ], "_prefab": null, @@ -6959,7 +7202,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 134 + "__id__": 139 }, "_enabled": true, "_materials": [ @@ -6993,13 +7236,13 @@ "_name": "didaoju", "_objFlags": 0, "_parent": { - "__id__": 133 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 137 + "__id__": 142 } ], "_prefab": null, @@ -7055,7 +7298,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 136 + "__id__": 141 }, "_enabled": true, "_materials": [ @@ -7087,7 +7330,7 @@ "_name": "New Node", "_objFlags": 0, "_parent": { - "__id__": 133 + "__id__": 138 }, "_children": [], "_active": false, @@ -7145,13 +7388,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 135 }, "_children": [], "_active": false, "_components": [ { - "__id__": 140 + "__id__": 145 } ], "_prefab": null, @@ -7207,7 +7450,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 139 + "__id__": 144 }, "_enabled": true, "_materials": [ @@ -7240,20 +7483,20 @@ "_name": "lock", "_objFlags": 0, "_parent": { - "__id__": 130 + "__id__": 135 }, "_children": [ { - "__id__": 142 + "__id__": 147 }, { - "__id__": 144 + "__id__": 149 } ], "_active": true, "_components": [ { - "__id__": 146 + "__id__": 151 } ], "_prefab": null, @@ -7309,13 +7552,13 @@ "_name": "button_4", "_objFlags": 0, "_parent": { - "__id__": 141 + "__id__": 146 }, "_children": [], "_active": true, "_components": [ { - "__id__": 143 + "__id__": 148 } ], "_prefab": null, @@ -7371,7 +7614,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 142 + "__id__": 147 }, "_enabled": true, "_materials": [ @@ -7405,13 +7648,13 @@ "_name": "coin_6", "_objFlags": 0, "_parent": { - "__id__": 141 + "__id__": 146 }, "_children": [], "_active": true, "_components": [ { - "__id__": 145 + "__id__": 150 } ], "_prefab": null, @@ -7467,7 +7710,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 144 + "__id__": 149 }, "_enabled": true, "_materials": [ @@ -7501,7 +7744,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 141 + "__id__": 146 }, "_enabled": true, "_materials": [ @@ -7535,7 +7778,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 130 + "__id__": 135 }, "_enabled": true, "_materials": [ @@ -7569,7 +7812,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 130 + "__id__": 135 }, "_enabled": true, "_id": "d3aD0owzFH74KOQ39ei+jJ" @@ -7577,7 +7820,7 @@ { "__type__": "cc.ClickEvent", "target": { - "__id__": 95 + "__id__": 100 }, "component": "", "_componentId": "2234assp7RIvpDgrnqljp2R", @@ -7589,7 +7832,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 156 }, "_enabled": true, "_normalMaterial": null, @@ -7598,7 +7841,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 160 + "__id__": 165 } ], "_N$interactable": true, @@ -7654,7 +7897,7 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 151 + "__id__": 156 }, "_id": "e84jtO6HVNNYNS+LVYc5Gi" }, @@ -7663,29 +7906,29 @@ "_name": "winStreakBtn", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [ { - "__id__": 152 + "__id__": 157 }, { - "__id__": 154 + "__id__": 159 }, { - "__id__": 156 + "__id__": 161 } ], "_active": false, "_components": [ { - "__id__": 158 + "__id__": 163 }, { - "__id__": 150 + "__id__": 155 }, { - "__id__": 159 + "__id__": 164 } ], "_prefab": null, @@ -7741,13 +7984,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 151 + "__id__": 156 }, "_children": [], "_active": true, "_components": [ { - "__id__": 153 + "__id__": 158 } ], "_prefab": null, @@ -7803,7 +8046,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 152 + "__id__": 157 }, "_enabled": true, "_materials": [ @@ -7837,13 +8080,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 151 + "__id__": 156 }, "_children": [], "_active": true, "_components": [ { - "__id__": 155 + "__id__": 160 } ], "_prefab": null, @@ -7899,7 +8142,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 154 + "__id__": 159 }, "_enabled": true, "_materials": [ @@ -7933,13 +8176,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 151 + "__id__": 156 }, "_children": [], "_active": true, "_components": [ { - "__id__": 157 + "__id__": 162 } ], "_prefab": null, @@ -7995,7 +8238,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 156 + "__id__": 161 }, "_enabled": true, "_materials": [ @@ -8027,7 +8270,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 156 }, "_enabled": true, "_materials": [ @@ -8061,7 +8304,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 156 }, "_enabled": true, "_id": "5bwikT9ZdGr6agHiYqa2Hb" @@ -8069,7 +8312,7 @@ { "__type__": "cc.ClickEvent", "target": { - "__id__": 95 + "__id__": 100 }, "component": "", "_componentId": "2234assp7RIvpDgrnqljp2R", @@ -8085,13 +8328,13 @@ }, "_children": [ { - "__id__": 162 + "__id__": 167 } ], "_active": false, "_components": [ { - "__id__": 176 + "__id__": 181 } ], "_prefab": null, @@ -8147,26 +8390,26 @@ "_name": "tuowei1", "_objFlags": 0, "_parent": { - "__id__": 161 + "__id__": 166 }, "_children": [ { - "__id__": 163 + "__id__": 168 }, { - "__id__": 166 + "__id__": 171 }, { - "__id__": 169 + "__id__": 174 }, { - "__id__": 172 + "__id__": 177 } ], "_active": true, "_components": [], "_prefab": { - "__id__": 175 + "__id__": 180 }, "_opacity": 255, "_color": { @@ -8220,17 +8463,17 @@ "_name": "bang", "_objFlags": 0, "_parent": { - "__id__": 162 + "__id__": 167 }, "_children": [], "_active": false, "_components": [ { - "__id__": 164 + "__id__": 169 } ], "_prefab": { - "__id__": 165 + "__id__": 170 }, "_opacity": 255, "_color": { @@ -8284,7 +8527,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 163 + "__id__": 168 }, "_enabled": true, "_materials": [ @@ -8312,7 +8555,7 @@ { "__type__": "cc.PrefabInfo", "root": { - "__id__": 162 + "__id__": 167 }, "asset": { "__uuid__": "ffebbf13-83a0-4923-a965-96f134e7b567" @@ -8325,17 +8568,17 @@ "_name": "tailing", "_objFlags": 0, "_parent": { - "__id__": 162 + "__id__": 167 }, "_children": [], "_active": true, "_components": [ { - "__id__": 167 + "__id__": 172 } ], "_prefab": { - "__id__": 168 + "__id__": 173 }, "_opacity": 255, "_color": { @@ -8389,7 +8632,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 166 + "__id__": 171 }, "_enabled": true, "_materials": [ @@ -8419,7 +8662,7 @@ { "__type__": "cc.PrefabInfo", "root": { - "__id__": 162 + "__id__": 167 }, "asset": { "__uuid__": "ffebbf13-83a0-4923-a965-96f134e7b567" @@ -8432,17 +8675,17 @@ "_name": "em_flash_particle", "_objFlags": 0, "_parent": { - "__id__": 162 + "__id__": 167 }, "_children": [], "_active": true, "_components": [ { - "__id__": 170 + "__id__": 175 } ], "_prefab": { - "__id__": 171 + "__id__": 176 }, "_opacity": 255, "_color": { @@ -8496,7 +8739,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 169 + "__id__": 174 }, "_enabled": true, "_materials": [ @@ -8595,7 +8838,7 @@ { "__type__": "cc.PrefabInfo", "root": { - "__id__": 162 + "__id__": 167 }, "asset": { "__uuid__": "ffebbf13-83a0-4923-a965-96f134e7b567" @@ -8608,17 +8851,17 @@ "_name": "em_flash_0001", "_objFlags": 0, "_parent": { - "__id__": 162 + "__id__": 167 }, "_children": [], "_active": true, "_components": [ { - "__id__": 173 + "__id__": 178 } ], "_prefab": { - "__id__": 174 + "__id__": 179 }, "_opacity": 255, "_color": { @@ -8672,7 +8915,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 172 + "__id__": 177 }, "_enabled": true, "_materials": [ @@ -8771,7 +9014,7 @@ { "__type__": "cc.PrefabInfo", "root": { - "__id__": 162 + "__id__": 167 }, "asset": { "__uuid__": "ffebbf13-83a0-4923-a965-96f134e7b567" @@ -8782,7 +9025,7 @@ { "__type__": "cc.PrefabInfo", "root": { - "__id__": 162 + "__id__": 167 }, "asset": { "__uuid__": "ffebbf13-83a0-4923-a965-96f134e7b567" @@ -8795,7 +9038,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 161 + "__id__": 166 }, "_enabled": true, "_materials": [ @@ -8841,31 +9084,31 @@ }, "_children": [ { - "__id__": 178 + "__id__": 183 }, { - "__id__": 182 + "__id__": 187 }, { - "__id__": 184 + "__id__": 189 }, { - "__id__": 186 + "__id__": 191 }, { - "__id__": 188 + "__id__": 193 }, { - "__id__": 190 + "__id__": 195 } ], "_active": false, "_components": [ { - "__id__": 196 + "__id__": 201 }, { - "__id__": 197 + "__id__": 202 } ], "_prefab": null, @@ -8921,19 +9164,19 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 177 + "__id__": 182 }, "_children": [], "_active": true, "_components": [ { - "__id__": 179 + "__id__": 184 }, { - "__id__": 180 + "__id__": 185 }, { - "__id__": 181 + "__id__": 186 } ], "_prefab": null, @@ -8989,7 +9232,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 178 + "__id__": 183 }, "_enabled": true, "_materials": [ @@ -9021,7 +9264,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 178 + "__id__": 183 }, "_enabled": true, "alignMode": 1, @@ -9048,7 +9291,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 178 + "__id__": 183 }, "_enabled": true, "_id": "95Vn8J8CdEAp/SGn35R5Xu" @@ -9058,13 +9301,13 @@ "_name": "daojuditu", "_objFlags": 0, "_parent": { - "__id__": 177 + "__id__": 182 }, "_children": [], "_active": true, "_components": [ { - "__id__": 183 + "__id__": 188 } ], "_prefab": null, @@ -9120,7 +9363,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 182 + "__id__": 187 }, "_enabled": true, "_materials": [ @@ -9152,13 +9395,13 @@ "_name": "gui_shizhong", "_objFlags": 0, "_parent": { - "__id__": 177 + "__id__": 182 }, "_children": [], "_active": true, "_components": [ { - "__id__": 185 + "__id__": 190 } ], "_prefab": null, @@ -9214,7 +9457,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 184 + "__id__": 189 }, "_enabled": true, "_materials": [ @@ -9248,13 +9491,13 @@ "_name": "txt_5t", "_objFlags": 0, "_parent": { - "__id__": 177 + "__id__": 182 }, "_children": [], "_active": true, "_components": [ { - "__id__": 187 + "__id__": 192 } ], "_prefab": null, @@ -9310,7 +9553,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 186 + "__id__": 191 }, "_enabled": true, "_materials": [ @@ -9344,13 +9587,13 @@ "_name": "txt_6t", "_objFlags": 0, "_parent": { - "__id__": 177 + "__id__": 182 }, "_children": [], "_active": true, "_components": [ { - "__id__": 189 + "__id__": 194 } ], "_prefab": null, @@ -9406,7 +9649,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 188 + "__id__": 193 }, "_enabled": true, "_materials": [ @@ -9440,20 +9683,20 @@ "_name": "btn_lq", "_objFlags": 0, "_parent": { - "__id__": 177 + "__id__": 182 }, "_children": [ { - "__id__": 191 + "__id__": 196 } ], "_active": true, "_components": [ { - "__id__": 193 + "__id__": 198 }, { - "__id__": 194 + "__id__": 199 } ], "_prefab": null, @@ -9509,13 +9752,13 @@ "_name": "btn_lq2", "_objFlags": 0, "_parent": { - "__id__": 190 + "__id__": 195 }, "_children": [], "_active": false, "_components": [ { - "__id__": 192 + "__id__": 197 } ], "_prefab": null, @@ -9571,7 +9814,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 191 + "__id__": 196 }, "_enabled": true, "_materials": [ @@ -9605,7 +9848,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 190 + "__id__": 195 }, "_enabled": true, "_materials": [ @@ -9637,7 +9880,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 190 + "__id__": 195 }, "_enabled": true, "_normalMaterial": null, @@ -9646,7 +9889,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 195 + "__id__": 200 } ], "_N$interactable": true, @@ -9702,14 +9945,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 190 + "__id__": 195 }, "_id": "92AlkG7CNBpJXAytVBuBwj" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 177 + "__id__": 182 }, "component": "", "_componentId": "54996zSr8pHNLOmmqnTRGXe", @@ -9721,7 +9964,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 182 }, "_enabled": true, "alignMode": 1, @@ -9748,25 +9991,25 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 177 + "__id__": 182 }, "_enabled": true, "itemList": [ { - "__id__": 186 + "__id__": 191 }, { - "__id__": 184 + "__id__": 189 }, { - "__id__": 188 + "__id__": 193 }, { - "__id__": 182 + "__id__": 187 } ], "itemGuide": { - "__id__": 184 + "__id__": 189 }, "itemSpriteList": [ { @@ -9814,13 +10057,13 @@ ], "targetNode": [ { - "__id__": 111 + "__id__": 116 }, { - "__id__": 75 + "__id__": 80 }, { - "__id__": 130 + "__id__": 135 } ], "_id": "fbc3UiJP1FN69CmTLDgjh5" @@ -9830,16 +10073,16 @@ "_name": "magicMask", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [], "_active": false, "_components": [ { - "__id__": 199 + "__id__": 204 }, { - "__id__": 200 + "__id__": 205 } ], "_prefab": null, @@ -9895,7 +10138,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 198 + "__id__": 203 }, "_enabled": true, "_materials": [ @@ -9929,7 +10172,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 198 + "__id__": 203 }, "_enabled": true, "_id": "e8zuQH36BBZaL/1k13rbss" @@ -9939,16 +10182,16 @@ "_name": "hammerMask", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [], "_active": false, "_components": [ { - "__id__": 202 + "__id__": 207 }, { - "__id__": 203 + "__id__": 208 } ], "_prefab": null, @@ -10004,7 +10247,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 201 + "__id__": 206 }, "_enabled": true, "_materials": [ @@ -10038,7 +10281,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 201 + "__id__": 206 }, "_enabled": true, "_id": "38p//kTl1IxZ+3LfA8cdcJ" @@ -10048,16 +10291,16 @@ "_name": "freezeMask", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [], "_active": false, "_components": [ { - "__id__": 205 + "__id__": 210 }, { - "__id__": 206 + "__id__": 211 } ], "_prefab": null, @@ -10113,7 +10356,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 209 }, "_enabled": true, "_materials": [ @@ -10147,7 +10390,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 204 + "__id__": 209 }, "_enabled": true, "_id": "63gNCerwZExo+YLuxgFmqU" @@ -10157,7 +10400,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 75 + "__id__": 80 }, "_enabled": true, "_id": "8dtEbp4qBFRZbexchpFtKp" @@ -10167,20 +10410,20 @@ "_name": "returnBtn", "_objFlags": 0, "_parent": { - "__id__": 67 + "__id__": 72 }, "_children": [ { - "__id__": 209 + "__id__": 214 } ], "_active": true, "_components": [ { - "__id__": 211 + "__id__": 216 }, { - "__id__": 213 + "__id__": 218 } ], "_prefab": null, @@ -10236,13 +10479,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 208 + "__id__": 213 }, "_children": [], "_active": true, "_components": [ { - "__id__": 210 + "__id__": 215 } ], "_prefab": null, @@ -10298,7 +10541,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 209 + "__id__": 214 }, "_enabled": true, "_materials": [ @@ -10332,196 +10575,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 208 - }, - "_enabled": true, - "_normalMaterial": null, - "_grayMaterial": null, - "duration": 0.1, - "zoomScale": 1.1, - "clickEvents": [ - { - "__id__": 212 - } - ], - "_N$interactable": true, - "_N$enableAutoGrayEffect": false, - "_N$transition": 3, - "transition": 3, - "_N$normalColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_N$pressedColor": { - "__type__": "cc.Color", - "r": 211, - "g": 211, - "b": 211, - "a": 255 - }, - "pressedColor": { - "__type__": "cc.Color", - "r": 211, - "g": 211, - "b": 211, - "a": 255 - }, - "_N$hoverColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "hoverColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_N$disabledColor": { - "__type__": "cc.Color", - "r": 124, - "g": 124, - "b": 124, - "a": 255 - }, - "_N$normalSprite": null, - "_N$pressedSprite": null, - "pressedSprite": null, - "_N$hoverSprite": null, - "hoverSprite": null, - "_N$disabledSprite": null, - "_N$target": { - "__id__": 208 - }, - "_id": "87c+8sV8FH+5mMTIXYBbll" - }, - { - "__type__": "cc.ClickEvent", - "target": { - "__id__": 2 - }, - "component": "", - "_componentId": "80998T1AYNNRZdRxsVvXR65", - "handler": "openPause", - "customEventData": "" - }, - { - "__type__": "6ee6czJ4eVNb4Feiqps5SIa", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 208 - }, - "_enabled": true, - "_id": "ae2rpYpEJBsK26v76aVmm/" - }, - { - "__type__": "cc.Node", - "_name": "pauseBtn", - "_objFlags": 0, - "_parent": { - "__id__": 67 - }, - "_children": [], - "_active": false, - "_components": [ - { - "__id__": 215 - }, - { - "__id__": 216 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 140, - "height": 140 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - -344.01, - 94.546, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "14LgqH3k5PXKMdPiQKht0P" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 214 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": null, - "_type": 0, - "_sizeMode": 1, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": null, - "_id": "f3Q1K7ngJBO41LJ2cZ4Rd8" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 214 + "__id__": 213 }, "_enabled": true, "_normalMaterial": null, @@ -10586,14 +10640,203 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 214 + "__id__": 213 + }, + "_id": "87c+8sV8FH+5mMTIXYBbll" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "80998T1AYNNRZdRxsVvXR65", + "handler": "openPause", + "customEventData": "" + }, + { + "__type__": "6ee6czJ4eVNb4Feiqps5SIa", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 213 + }, + "_enabled": true, + "_id": "ae2rpYpEJBsK26v76aVmm/" + }, + { + "__type__": "cc.Node", + "_name": "pauseBtn", + "_objFlags": 0, + "_parent": { + "__id__": 72 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 220 + }, + { + "__id__": 221 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 140, + "height": 140 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -344.01, + 94.546, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "14LgqH3k5PXKMdPiQKht0P" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 219 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "f3Q1K7ngJBO41LJ2cZ4Rd8" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 219 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 222 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 219 }, "_id": "3dlpZtk6BJQ40ey82SCcay" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 95 + "__id__": 100 }, "component": "", "_componentId": "2234assp7RIvpDgrnqljp2R", @@ -10605,7 +10848,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 67 + "__id__": 72 }, "_enabled": true, "alignMode": 1, @@ -10636,19 +10879,19 @@ }, "_children": [ { - "__id__": 220 + "__id__": 225 } ], "_active": false, "_components": [ { - "__id__": 241 + "__id__": 246 }, { - "__id__": 242 + "__id__": 247 }, { - "__id__": 243 + "__id__": 248 } ], "_prefab": null, @@ -10704,17 +10947,17 @@ "_name": "bottom", "_objFlags": 0, "_parent": { - "__id__": 219 + "__id__": 224 }, "_children": [ { - "__id__": 221 + "__id__": 226 } ], "_active": true, "_components": [ { - "__id__": 240 + "__id__": 245 } ], "_prefab": null, @@ -10770,32 +11013,32 @@ "_name": "destroyBtn", "_objFlags": 0, "_parent": { - "__id__": 220 + "__id__": 225 }, "_children": [ { - "__id__": 222 + "__id__": 227 }, { - "__id__": 224 + "__id__": 229 }, { - "__id__": 226 + "__id__": 231 }, { - "__id__": 232 + "__id__": 237 } ], "_active": true, "_components": [ { - "__id__": 236 + "__id__": 241 }, { - "__id__": 237 + "__id__": 242 }, { - "__id__": 239 + "__id__": 244 } ], "_prefab": null, @@ -10851,13 +11094,13 @@ "_name": "New Sprite", "_objFlags": 0, "_parent": { - "__id__": 221 + "__id__": 226 }, "_children": [], "_active": true, "_components": [ { - "__id__": 223 + "__id__": 228 } ], "_prefab": null, @@ -10913,7 +11156,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 222 + "__id__": 227 }, "_enabled": true, "_materials": [ @@ -10947,13 +11190,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 221 + "__id__": 226 }, "_children": [], "_active": false, "_components": [ { - "__id__": 225 + "__id__": 230 } ], "_prefab": null, @@ -11009,7 +11252,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 224 + "__id__": 229 }, "_enabled": true, "_materials": [ @@ -11042,17 +11285,17 @@ "_name": "mul10", "_objFlags": 0, "_parent": { - "__id__": 221 + "__id__": 226 }, "_children": [ { - "__id__": 227 + "__id__": 232 }, { - "__id__": 229 + "__id__": 234 }, { - "__id__": 231 + "__id__": 236 } ], "_active": true, @@ -11110,13 +11353,13 @@ "_name": "mul10", "_objFlags": 0, "_parent": { - "__id__": 226 + "__id__": 231 }, "_children": [], "_active": false, "_components": [ { - "__id__": 228 + "__id__": 233 } ], "_prefab": null, @@ -11172,7 +11415,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 227 + "__id__": 232 }, "_enabled": true, "_materials": [ @@ -11206,13 +11449,13 @@ "_name": "didaoju", "_objFlags": 0, "_parent": { - "__id__": 226 + "__id__": 231 }, "_children": [], "_active": false, "_components": [ { - "__id__": 230 + "__id__": 235 } ], "_prefab": null, @@ -11268,7 +11511,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 229 + "__id__": 234 }, "_enabled": true, "_materials": [ @@ -11302,7 +11545,7 @@ "_name": "New Node", "_objFlags": 0, "_parent": { - "__id__": 226 + "__id__": 231 }, "_children": [], "_active": false, @@ -11360,17 +11603,17 @@ "_name": "lock", "_objFlags": 0, "_parent": { - "__id__": 221 + "__id__": 226 }, "_children": [ { - "__id__": 233 + "__id__": 238 } ], "_active": false, "_components": [ { - "__id__": 235 + "__id__": 240 } ], "_prefab": null, @@ -11426,13 +11669,13 @@ "_name": "tili_8", "_objFlags": 0, "_parent": { - "__id__": 232 + "__id__": 237 }, "_children": [], "_active": true, "_components": [ { - "__id__": 234 + "__id__": 239 } ], "_prefab": null, @@ -11488,7 +11731,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 233 + "__id__": 238 }, "_enabled": true, "_materials": [ @@ -11522,7 +11765,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 232 + "__id__": 237 }, "_enabled": true, "_materials": [ @@ -11556,7 +11799,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 221 + "__id__": 226 }, "_enabled": true, "_materials": [ @@ -11590,7 +11833,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 221 + "__id__": 226 }, "_enabled": true, "_normalMaterial": null, @@ -11599,7 +11842,7 @@ "zoomScale": 1.1, "clickEvents": [ { - "__id__": 238 + "__id__": 243 } ], "_N$interactable": true, @@ -11655,14 +11898,14 @@ "hoverSprite": null, "_N$disabledSprite": null, "_N$target": { - "__id__": 221 + "__id__": 226 }, "_id": "150aiaeGdI/YFP1L2K0NPn" }, { "__type__": "cc.ClickEvent", "target": { - "__id__": 95 + "__id__": 100 }, "component": "", "_componentId": "2234assp7RIvpDgrnqljp2R", @@ -11674,7 +11917,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 221 + "__id__": 226 }, "_enabled": true, "_id": "71sUKAtHZCro/988B+N4cn" @@ -11684,7 +11927,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 220 + "__id__": 225 }, "_enabled": true, "alignMode": 1, @@ -11711,7 +11954,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 224 }, "_enabled": true, "_materials": [ @@ -11743,7 +11986,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 224 }, "_enabled": true, "alignMode": 1, @@ -11770,7 +12013,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 219 + "__id__": 224 }, "_enabled": true, "_id": "970euz4sFDGYqbBDcoY+nk" @@ -11784,16 +12027,16 @@ }, "_children": [ { - "__id__": 245 + "__id__": 250 } ], "_active": false, "_components": [ { - "__id__": 247 + "__id__": 252 }, { - "__id__": 248 + "__id__": 253 } ], "_prefab": null, @@ -11849,13 +12092,13 @@ "_name": "skeleton", "_objFlags": 0, "_parent": { - "__id__": 244 + "__id__": 249 }, "_children": [], "_active": true, "_components": [ { - "__id__": 246 + "__id__": 251 } ], "_prefab": null, @@ -11911,7 +12154,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 245 + "__id__": 250 }, "_enabled": true, "_materials": [ @@ -11953,7 +12196,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 244 + "__id__": 249 }, "_enabled": true, "_materials": [ @@ -11983,7 +12226,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 244 + "__id__": 249 }, "_enabled": true, "alignMode": 1, @@ -12041,16 +12284,16 @@ }, "_children": [ { - "__id__": 251 + "__id__": 256 }, { - "__id__": 253 + "__id__": 258 } ], "_active": false, "_components": [ { - "__id__": 256 + "__id__": 261 } ], "_prefab": null, @@ -12106,13 +12349,13 @@ "_name": "pass_rate_label", "_objFlags": 0, "_parent": { - "__id__": 250 + "__id__": 255 }, "_children": [], "_active": true, "_components": [ { - "__id__": 252 + "__id__": 257 } ], "_prefab": null, @@ -12168,7 +12411,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 251 + "__id__": 256 }, "_enabled": true, "_materials": [ @@ -12200,16 +12443,16 @@ "_name": "passRate", "_objFlags": 0, "_parent": { - "__id__": 250 + "__id__": 255 }, "_children": [], "_active": true, "_components": [ { - "__id__": 254 + "__id__": 259 }, { - "__id__": 255 + "__id__": 260 } ], "_prefab": null, @@ -12265,7 +12508,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 253 + "__id__": 258 }, "_enabled": true, "_materials": [ @@ -12298,7 +12541,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 253 + "__id__": 258 }, "_enabled": true, "_color": { @@ -12316,7 +12559,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 250 + "__id__": 255 }, "_enabled": false, "alignMode": 1, @@ -12376,13 +12619,13 @@ "_active": false, "_components": [ { - "__id__": 259 + "__id__": 264 }, { - "__id__": 260 + "__id__": 265 }, { - "__id__": 304 + "__id__": 266 } ], "_prefab": null, @@ -12438,7 +12681,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 258 + "__id__": 263 }, "_enabled": true, "_materials": [ @@ -12458,7 +12701,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 258 + "__id__": 263 }, "_enabled": true, "alignMode": 1, @@ -12480,6 +12723,16 @@ "_originalHeight": 0, "_id": "394oVlZVVDDp4PRHaKfK2n" }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 263 + }, + "_enabled": true, + "_id": "d9e8Y//+dGO5Tm2vNoQbwO" + }, { "__type__": "cc.Node", "_name": "Loading", @@ -12489,31 +12742,31 @@ }, "_children": [ { - "__id__": 262 - }, - { - "__id__": 265 - }, - { - "__id__": 267 + "__id__": 268 }, { "__id__": 271 }, { - "__id__": 275 + "__id__": 273 }, { - "__id__": 279 + "__id__": 277 }, { - "__id__": 283 + "__id__": 281 + }, + { + "__id__": 285 + }, + { + "__id__": 289 } ], "_active": false, "_components": [ { - "__id__": 285 + "__id__": 291 } ], "_prefab": null, @@ -12569,16 +12822,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 261 + "__id__": 267 }, "_children": [], "_active": true, "_components": [ { - "__id__": 263 + "__id__": 269 }, { - "__id__": 264 + "__id__": 270 } ], "_prefab": null, @@ -12634,7 +12887,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 262 + "__id__": 268 }, "_enabled": true, "_materials": [ @@ -12666,7 +12919,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 262 + "__id__": 268 }, "_enabled": true, "_id": "0fS5t0zP5AdI0CPkmzwBv/" @@ -12676,13 +12929,13 @@ "_name": "New Label", "_objFlags": 0, "_parent": { - "__id__": 261 + "__id__": 267 }, "_children": [], "_active": true, "_components": [ { - "__id__": 266 + "__id__": 272 } ], "_prefab": null, @@ -12738,7 +12991,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 265 + "__id__": 271 }, "_enabled": true, "_materials": [ @@ -12771,17 +13024,17 @@ "_name": "block1", "_objFlags": 0, "_parent": { - "__id__": 261 + "__id__": 267 }, "_children": [ { - "__id__": 268 + "__id__": 274 } ], "_active": true, "_components": [ { - "__id__": 270 + "__id__": 276 } ], "_prefab": null, @@ -12837,13 +13090,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 267 + "__id__": 273 }, "_children": [], "_active": true, "_components": [ { - "__id__": 269 + "__id__": 275 } ], "_prefab": null, @@ -12899,7 +13152,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 268 + "__id__": 274 }, "_enabled": true, "_materials": [ @@ -12931,7 +13184,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 267 + "__id__": 273 }, "_enabled": true, "_materials": [ @@ -12963,17 +13216,17 @@ "_name": "block2", "_objFlags": 0, "_parent": { - "__id__": 261 + "__id__": 267 }, "_children": [ { - "__id__": 272 + "__id__": 278 } ], "_active": true, "_components": [ { - "__id__": 274 + "__id__": 280 } ], "_prefab": null, @@ -13029,13 +13282,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 271 + "__id__": 277 }, "_children": [], "_active": true, "_components": [ { - "__id__": 273 + "__id__": 279 } ], "_prefab": null, @@ -13091,7 +13344,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 272 + "__id__": 278 }, "_enabled": true, "_materials": [ @@ -13123,7 +13376,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 271 + "__id__": 277 }, "_enabled": true, "_materials": [ @@ -13155,17 +13408,17 @@ "_name": "block3", "_objFlags": 0, "_parent": { - "__id__": 261 + "__id__": 267 }, "_children": [ { - "__id__": 276 + "__id__": 282 } ], "_active": true, "_components": [ { - "__id__": 278 + "__id__": 284 } ], "_prefab": null, @@ -13221,13 +13474,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 275 + "__id__": 281 }, "_children": [], "_active": true, "_components": [ { - "__id__": 277 + "__id__": 283 } ], "_prefab": null, @@ -13283,7 +13536,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 276 + "__id__": 282 }, "_enabled": true, "_materials": [ @@ -13315,7 +13568,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 275 + "__id__": 281 }, "_enabled": true, "_materials": [ @@ -13347,17 +13600,17 @@ "_name": "block4", "_objFlags": 0, "_parent": { - "__id__": 261 + "__id__": 267 }, "_children": [ { - "__id__": 280 + "__id__": 286 } ], "_active": true, "_components": [ { - "__id__": 282 + "__id__": 288 } ], "_prefab": null, @@ -13413,13 +13666,13 @@ "_name": "light", "_objFlags": 0, "_parent": { - "__id__": 279 + "__id__": 285 }, "_children": [], "_active": true, "_components": [ { - "__id__": 281 + "__id__": 287 } ], "_prefab": null, @@ -13475,7 +13728,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 280 + "__id__": 286 }, "_enabled": true, "_materials": [ @@ -13507,7 +13760,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 279 + "__id__": 285 }, "_enabled": true, "_materials": [ @@ -13539,13 +13792,13 @@ "_name": "cat", "_objFlags": 0, "_parent": { - "__id__": 261 + "__id__": 267 }, "_children": [], "_active": true, "_components": [ { - "__id__": 284 + "__id__": 290 } ], "_prefab": null, @@ -13601,7 +13854,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 283 + "__id__": 289 }, "_enabled": true, "_materials": [ @@ -13633,7 +13886,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 261 + "__id__": 267 }, "_enabled": true, "alignMode": 1, @@ -13664,16 +13917,16 @@ }, "_children": [ { - "__id__": 287 + "__id__": 293 } ], "_active": false, "_components": [ { - "__id__": 290 + "__id__": 296 }, { - "__id__": 291 + "__id__": 297 } ], "_prefab": null, @@ -13729,16 +13982,16 @@ "_name": "New Sprite(Splash)", "_objFlags": 0, "_parent": { - "__id__": 286 + "__id__": 292 }, "_children": [], "_active": true, "_components": [ { - "__id__": 288 + "__id__": 294 }, { - "__id__": 289 + "__id__": 295 } ], "_prefab": null, @@ -13794,7 +14047,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 287 + "__id__": 293 }, "_enabled": true, "_materials": [ @@ -13826,7 +14079,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 287 + "__id__": 293 }, "_enabled": true, "_id": "4fwjz1lnFLD45L1lqUY038" @@ -13836,7 +14089,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 286 + "__id__": 292 }, "_enabled": true, "_materials": [ @@ -13878,446 +14131,11 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 286 + "__id__": 292 }, "_enabled": false, "_id": "00qpMLeBFNhYRX9r3QZvyP" }, - { - "__type__": "cc.Canvas", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 2 - }, - "_enabled": true, - "_designResolution": { - "__type__": "cc.Size", - "width": 1080, - "height": 1920 - }, - "_fitWidth": true, - "_fitHeight": false, - "_id": "59Cd0ovbdF4byw5sbjJDx7" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 2 - }, - "_enabled": true, - "alignMode": 1, - "_target": null, - "_alignFlags": 45, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_verticalCenter": 0, - "_horizontalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 0, - "_originalHeight": 0, - "_id": "29zXboiXFBKoIV4PQ2liTe" - }, - { - "__type__": "80998T1AYNNRZdRxsVvXR65", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 2 - }, - "_enabled": true, - "label": null, - "text": "hello", - "freeze": { - "__id__": 75 - }, - "hammer": { - "__id__": 111 - }, - "magic_wand": { - "__id__": 130 - }, - "pause": { - "__id__": 208 - }, - "level": null, - "timeCoin": null, - "winCoin": null, - "nextMode": null, - "flyCoinPrefab": { - "__uuid__": "f6fba95f-6330-4e15-8d89-5dc345de90e8" - }, - "flyCoinSpriteFrame": { - "__uuid__": "d22678f9-a73b-4c94-af07-62a134fd2d30" - }, - "flyCoinCount": 16, - "flyCoinDuration": 1, - "flyCoinInterval": 0.05, - "Block_Array": [], - "Wall_Prefab": [], - "avatar": { - "__uuid__": "fd85df88-648f-4407-bab2-da4f15478fb9" - }, - "messageNode": null, - "_id": "4cjBjPtcBO05zIQupw5luh", - "tipPanel": { - "__id__": 303 - } - }, - { - "__type__": "f1883pXzMVIp5/ARDAWfZ7j", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 2 - }, - "_enabled": true, - "_id": "58DM8oQ6lCUKVXb6q5XYvl" - }, - { - "__type__": "cc.Node", - "_name": "stop", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 297 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 154, - "height": 172 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 192.639, - 296.447, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "3eJ2YsxDRCtZGj/DKDc7/i" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 296 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": null, - "_type": 0, - "_sizeMode": 1, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": null, - "_id": "95joh5iDZB1IGmJkAeXXrL" - }, - { - "__type__": "cc.Node", - "_name": "tip", - "_objFlags": 0, - "_parent": { - "__id__": 15 - }, - "_children": [ - { - "__id__": 299 - } - ], - "_active": true, - "_components": [], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "e4LIw406xPc6DLoPDZ9wmy" - }, - { - "__type__": "cc.Node", - "_name": "GameplayInfoButton", - "_objFlags": 0, - "_parent": { - "__id__": 298 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 300 - }, - { - "__id__": 301 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 82.66666666666667, - "height": 88 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 282, - -60.562, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "Vg/+kIt8y9qkYZSB/Xx8wA" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 299 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "d9333256-302a-403b-93bf-e25c42829476" - }, - "_type": 0, - "_sizeMode": 0, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": null, - "_id": "7urvt+4r1Eol9iPd9AAi5Q" - }, - { - "__type__": "cc.Button", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 299 - }, - "_enabled": true, - "_normalMaterial": null, - "_grayMaterial": null, - "duration": 0.1, - "zoomScale": 1.2, - "clickEvents": [ - { - "__id__": 302 - } - ], - "_N$interactable": true, - "_N$enableAutoGrayEffect": false, - "_N$transition": 0, - "transition": 0, - "_N$normalColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_N$pressedColor": { - "__type__": "cc.Color", - "r": 211, - "g": 211, - "b": 211, - "a": 255 - }, - "pressedColor": { - "__type__": "cc.Color", - "r": 211, - "g": 211, - "b": 211, - "a": 255 - }, - "_N$hoverColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "hoverColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_N$disabledColor": { - "__type__": "cc.Color", - "r": 124, - "g": 124, - "b": 124, - "a": 255 - }, - "_N$normalSprite": null, - "_N$pressedSprite": null, - "pressedSprite": null, - "_N$hoverSprite": null, - "hoverSprite": null, - "_N$disabledSprite": null, - "_N$target": { - "__id__": 299 - }, - "_id": "4y6hgv/WvY4E/88bmCerjg" - }, - { - "__type__": "cc.ClickEvent", - "target": { - "__id__": 2 - }, - "component": "", - "_componentId": "80998T1AYNNRZdRxsVvXR65", - "handler": "openGameplayIntro", - "customEventData": "" - }, { "__type__": "cc.Node", "_name": "tipPanel", @@ -14377,13 +14195,195 @@ "_id": "ffogY+noNEpL/dzRMkLQ4G" }, { - "__type__": "cc.BlockInputEvents", + "__type__": "cc.Canvas", "_name": "", "_objFlags": 0, "node": { - "__id__": 258 + "__id__": 2 }, "_enabled": true, - "_id": "d9e8Y//+dGO5Tm2vNoQbwO" + "_designResolution": { + "__type__": "cc.Size", + "width": 1080, + "height": 1920 + }, + "_fitWidth": true, + "_fitHeight": false, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + }, + { + "__type__": "80998T1AYNNRZdRxsVvXR65", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "label": null, + "text": "hello", + "freeze": { + "__id__": 80 + }, + "hammer": { + "__id__": 116 + }, + "magic_wand": { + "__id__": 135 + }, + "pause": { + "__id__": 213 + }, + "level": null, + "timeCoin": null, + "winCoin": null, + "nextMode": null, + "flyCoinPrefab": { + "__uuid__": "f6fba95f-6330-4e15-8d89-5dc345de90e8" + }, + "flyCoinSpriteFrame": { + "__uuid__": "d22678f9-a73b-4c94-af07-62a134fd2d30" + }, + "flyCoinCount": 16, + "flyCoinDuration": 1, + "flyCoinInterval": 0.05, + "Block_Array": [], + "Wall_Prefab": [], + "avatar": { + "__uuid__": "fd85df88-648f-4407-bab2-da4f15478fb9" + }, + "messageNode": null, + "tipPanel": { + "__id__": 298 + }, + "_id": "4cjBjPtcBO05zIQupw5luh" + }, + { + "__type__": "f1883pXzMVIp5/ARDAWfZ7j", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_id": "58DM8oQ6lCUKVXb6q5XYvl" + }, + { + "__type__": "cc.Node", + "_name": "stop", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 304 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 154, + "height": 172 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 192.639, + 296.447, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "3eJ2YsxDRCtZGj/DKDc7/i" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 303 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "95joh5iDZB1IGmJkAeXXrL" } ] \ No newline at end of file diff --git a/assets/Script/Map.ts b/assets/Script/Map.ts index b0aeeb4..7d8b1f8 100644 --- a/assets/Script/Map.ts +++ b/assets/Script/Map.ts @@ -1213,6 +1213,7 @@ export default class MapConroler extends cc.Component { if (!this.isMapRuntimeAlive()) return; this.ensureWinLoaded(error => onComplete(error)); } : null, + () => this.SceneManager.scheduleGameplayIntroPredownload(), ); }, 0); }; diff --git a/assets/Script/SceneManager.ts b/assets/Script/SceneManager.ts index 234d747..656f6b4 100644 --- a/assets/Script/SceneManager.ts +++ b/assets/Script/SceneManager.ts @@ -45,10 +45,17 @@ export default class SceneManager extends cc.Component { if (bundleName === "action_bundle") return; if (!bundle) return; setTimeout(() => { - if (cc.fx.GameTool && cc.fx.GameTool.shouldRetainGameplayPopupBundlesForGameSceneReload + if (bundleName !== "gameplay_intro" && cc.fx.GameTool && cc.fx.GameTool.shouldRetainGameplayPopupBundlesForGameSceneReload && cc.fx.GameTool.shouldRetainGameplayPopupBundlesForGameSceneReload()) return; const active = SceneManager.activeInstance; - if (active && cc.isValid(active, true)) return; + if (active && cc.isValid(active, true)) { + if (bundleName !== "gameplay_intro") return; + // 旧场景晚到的介绍请求,仅在新场景确实接管此包时保留。 + if (Object.keys(active.dynamicPopupStates || {}).some(name => { + const state = active.dynamicPopupStates[name]; + return state.bundle === bundle || (state.loading && state.bundleName === bundleName); + })) return; + } if (cc.assetManager.getBundle(bundleName) !== bundle) return; bundle.releaseAll(); if (cc.assetManager.getBundle(bundleName) === bundle) { @@ -210,6 +217,36 @@ export default class SceneManager extends cc.Component { private dynamicPopupRetries: { [popupName: string]: { displayName: string; retry: () => void } } = {}; private dynamicPopupStates: { [popupName: string]: DynamicPopupState } = {}; private popupBundleWarmupStarted: boolean = false; + private gameplayIntroPredownloadScheduled: boolean = false; + + /** 地图就绪且弹窗预热结束后调用;持续空闲一秒才派发,只下载,不 loadBundle。 */ + scheduleGameplayIntroPredownload() { + //@ts-ignore + if (cc.sys.platform !== cc.sys.WECHAT_GAME || typeof wx === "undefined" || !wx.preDownloadSubpackage) return; + if (this.gameplayIntroPredownloadScheduled || !this.isPopupRuntimeAlive()) return; + this.gameplayIntroPredownloadScheduled = true; + let idle = false; + const check = () => { + if (!this.isPopupRuntimeAlive()) return; + const tool = cc.fx.GameTool; + if (tool.isGameplayIntroDownloaded()) return; + const busy = tool.hasPendingGameplayResourceLoads() || cc.fx.GameConfig.isGameplayEntryPreparing() + || Object.keys(this.dynamicPopupLoads).length > 0 + || Object.keys(this.dynamicPopupStates).some(name => this.dynamicPopupStates[name].loading); + if (busy || !idle) { + idle = !busy; + this.scheduleOnce(check, 1); + return; + } + tool.predownloadGameplayIntro().then(ready => { + if (!ready && this.isPopupRuntimeAlive()) { + idle = false; + this.scheduleOnce(check, 10); + } + }); + }; + this.scheduleOnce(check, 1); + } warmupGameplayPopupBundles( preloadInstances: boolean = false, @@ -297,11 +334,15 @@ export default class SceneManager extends cc.Component { && !!cc.fx.GameTool && !!cc.fx.GameTool.isIOSDevice && cc.fx.GameTool.isIOSDevice(); - if (!shouldWarmupPauseBundle) return; + if (!shouldWarmupPauseBundle) { + if (onComplete) onComplete(); + return; + } const loadedPauseBundle = cc.assetManager.getBundle("pause"); if (loadedPauseBundle) { console.log("[PopupBundle] already loaded: pause (iOS low-memory warmup)"); + if (onComplete) onComplete(); return; } cc.assetManager.loadBundle("pause", (error: Error, bundle: cc.AssetManager.Bundle) => { @@ -311,9 +352,11 @@ export default class SceneManager extends cc.Component { } if (error) { cc.warn("[PopupBundle] loadBundle failed: pause (iOS low-memory warmup)", error.message || error); + if (onComplete) onComplete(error); return; } console.log("[PopupBundle] loadBundle complete: pause (iOS low-memory warmup)"); + if (onComplete) onComplete(); }); } @@ -550,7 +593,10 @@ export default class SceneManager extends cc.Component { state.root = null; const bundle = state.bundle || cc.assetManager.getBundle(state.bundleName); state.bundle = null; - if (bundle && !retainBundle) this.releaseDynamicPopupBundle(state.bundleName, bundle); + // 介绍只缓存到当前关,不能混入五个常用弹窗的切关保留策略。 + if (bundle && (!retainBundle || state.bundleName === "gameplay_intro")) { + this.releaseDynamicPopupBundle(state.bundleName, bundle); + } } this.finishDynamicPopupLoad(popupName); } @@ -879,6 +925,8 @@ export default class SceneManager extends cc.Component { && cc.fx.GameTool.shouldRetainGameplayPopupBundlesForGameSceneReload(); Object.keys(this.dynamicPopupStates || {}).forEach((popupName) => this.releaseDynamicPopup(popupName, true, retainPopupBundles)); + const introBundle = cc.assetManager.getBundle("gameplay_intro"); + if (introBundle) this.releaseDynamicPopupBundleIfUnused("gameplay_intro", introBundle); if (!retainPopupBundles) { ["pause", "NewMode", "propWindow", "lose"].forEach((bundleName) => { const bundle = cc.assetManager.getBundle(bundleName); diff --git a/assets/Script/module/Config/GameConfig.ts b/assets/Script/module/Config/GameConfig.ts index e1b68f2..0fd7d0b 100644 --- a/assets/Script/module/Config/GameConfig.ts +++ b/assets/Script/module/Config/GameConfig.ts @@ -718,7 +718,7 @@ export class GameConfig { vibrateOpen: true, //震动 coinnum: 0, //每局的金币数 paid_user: false, //是否是付费用户 - version: "1.0.58", //版本号 + version: "1.0.59", //版本号 shushu_DistinctId: "", //数数访客ID shushu_AccountId: "", //数数账号ID uid: "", //用户和后端唯一id diff --git a/assets/Script/module/GameStart/GameAppStart.ts b/assets/Script/module/GameStart/GameAppStart.ts index a5f1796..2fa579c 100644 --- a/assets/Script/module/GameStart/GameAppStart.ts +++ b/assets/Script/module/GameStart/GameAppStart.ts @@ -27,6 +27,7 @@ window.initMgr = function () { cc.fx.GameConfig = GameConfig; cc.fx.HttpUtil = HttpUtil; cc.fx.GameTool = GameTool; + GameTool.trackResourceLoads(); cc.fx.Notifications = Notifications; diff --git a/assets/Script/module/Tool/BlockAssetManager.ts b/assets/Script/module/Tool/BlockAssetManager.ts index 50592fe..772f831 100644 --- a/assets/Script/module/Tool/BlockAssetManager.ts +++ b/assets/Script/module/Tool/BlockAssetManager.ts @@ -65,6 +65,12 @@ export default class BlockAssetManager { private foregroundLoads = 0; private entryDownloadHolds = 0; + /** 包括直存下载、排队任务和整批后台缓存,供最低优先级分包让路。 */ + hasPendingLoads(): boolean { + return this.foregroundLoads > 0 || this.entryDownloadHolds > 0 || this.backgroundRunning + || this.loading.size > 0 || this.fileDownloads.size > 0 || this.downloadQueue.length > 0; + } + /** 只停止后台派发;已在途下载继续完成,进关所需文件仍可提优先级。 */ holdBackgroundDownloads(): () => void { this.entryDownloadHolds++; diff --git a/assets/Script/module/Tool/GameTool.ts b/assets/Script/module/Tool/GameTool.ts index f755524..8f7d6e8 100644 --- a/assets/Script/module/Tool/GameTool.ts +++ b/assets/Script/module/Tool/GameTool.ts @@ -5,6 +5,7 @@ import Freeze from "../../prop/Freeze"; import SceneManager from "../../SceneManager"; import { MiniGameSdk } from "../../Sdk/MiniGameSdk"; import Utils from "../Pay/Utils"; +import BlockAssetManager from "./BlockAssetManager"; import { starterPackReward, applyStarterPackStatus, starterPackRemaining, starterPackNow, starterPackDay, starterPackPopupKey, starterPackFailureKey, starterPackRecordResult @@ -12,7 +13,7 @@ import { //@ts-ignore //最大工具类 各种公共方法,以及处理上传,获取后端接口数据 var GameTool = { - MAX_NORMAL_LEVEL: 1980, + MAX_NORMAL_LEVEL: 1960, starterPackReactivationUid: "", starterPackQueuedReason: "", MEMORY_WARNING_EVENT: "game-memory-warning", @@ -34,6 +35,73 @@ var GameTool = { _lowMemoryMode: false, _memoryWarningCount: 0, _gameplayPopupSubpackageDownloaded: {}, + _resourceLoadTrackingInstalled: false, + _pendingResourceLoads: 0, + _gameplayIntroDownload: null as Promise, + + /** 在启动入口安装;公开管线覆盖 load/preload/Bundle 及其排队、解析阶段。 */ + trackResourceLoads() { + if (this._resourceLoadTrackingInstalled) return; + this._resourceLoadTrackingInstalled = true; + [cc.assetManager.pipeline, cc.assetManager.fetchPipeline].forEach(pipeline => { + pipeline.insert((task, done) => { + this._pendingResourceLoads++; + const complete = task.onComplete; + let finished = false; + task.onComplete = (...args) => { + if (!finished) { + finished = true; + this._pendingResourceLoads--; + } + if (complete) complete.apply(task, args); + }; + task.output = task.input; + done(null); + }, 0); + }); + }, + + hasPendingGameplayResourceLoads(): boolean { + return !this._resourceLoadTrackingInstalled || this._pendingResourceLoads > 0 + || !!this._gameplayPopupSubpackagePreloadPromise || !!this._gameplayPopupMemoryWarmupPromise + || BlockAssetManager.instance.hasPendingLoads(); + }, + + isGameplayIntroDownloaded(): boolean { + return !!this._gameplayPopupSubpackageDownloaded.gameplay_intro + || !!cc.assetManager.getBundle("gameplay_intro"); + }, + + /** 仅预下载;跨启动的磁盘缓存由微信检查,不持久化可能失效的“已下载”标记。 */ + predownloadGameplayIntro(): Promise { + if (this.isGameplayIntroDownloaded()) return Promise.resolve(true); + if (this._gameplayIntroDownload) return this._gameplayIntroDownload; + // 老基础库不回退到 loadSubpackage,避免后台预下载顺带执行分包脚本。 + //@ts-ignore + const wechat = typeof wx !== "undefined" ? wx : null; + if (!wechat || !wechat.preDownloadSubpackage) return Promise.resolve(false); + this._gameplayIntroDownload = new Promise(resolve => { + console.log("[GameplayIntro] idle subpackage predownload start"); + try { + wechat.preDownloadSubpackage({ + name: "gameplay_intro", + success: () => { + this._gameplayPopupSubpackageDownloaded.gameplay_intro = true; + console.log("[GameplayIntro] subpackage cached; Bundle remains unloaded"); + resolve(true); + }, + fail: error => { cc.warn("[GameplayIntro] predownload failed", error); resolve(false); }, + }); + } catch (error) { + cc.warn("[GameplayIntro] predownload failed", error); + resolve(false); + } + }).then(ready => { + this._gameplayIntroDownload = null; + return ready; + }); + return this._gameplayIntroDownload; + }, _gameplayPopupSubpackageRetryTimer: null, _gameplayPopupSubpackagePreloadPromise: null, _gameplayPopupMemoryWarmupPromise: null, diff --git a/assets/gacha_bundle/img/cat.meta b/assets/gacha_bundle/img/cat.meta new file mode 100644 index 0000000..1297687 --- /dev/null +++ b/assets/gacha_bundle/img/cat.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "c9754f56-ad49-4bcc-a712-8f8e9e59dbb0", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/libs/dn-sdk-minigame.meta b/assets/libs/dn-sdk-minigame.meta new file mode 100644 index 0000000..ee68961 --- /dev/null +++ b/assets/libs/dn-sdk-minigame.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "543de93e-fba1-410a-a3cf-8b39b912464a", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/passCheck/script.meta b/assets/passCheck/script.meta new file mode 100644 index 0000000..4535ee2 --- /dev/null +++ b/assets/passCheck/script.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "4a7bec4e-6a81-4d81-86d8-edf1656cf2cf", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/pause/texture.meta b/assets/pause/texture.meta new file mode 100644 index 0000000..429c33b --- /dev/null +++ b/assets/pause/texture.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "ccd7701f-585a-411b-a8ef-a9f03f22189f", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/tools/test-first-game-entry.cjs b/tools/test-first-game-entry.cjs index 6963647..2cd8d69 100644 --- a/tools/test-first-game-entry.cjs +++ b/tools/test-first-game-entry.cjs @@ -202,6 +202,7 @@ function mapFixture() { const manager = Object.assign(new Manager(), { node: { getChildByName: () => ({}) }, isPopupRuntimeAlive: () => !state.destroyed, scheduleOnce: done => state.frames.push(done), + scheduleGameplayIntroPredownload: () => state.events.push('intro-idle'), loadDynamicPopup(name, bundle, prefab, parent, done, showLoading) { assert.equal(showLoading, false); state.popupCallbacks.push({ name, done }); }, @@ -299,7 +300,7 @@ test('memory downgrade before map readiness still reveals the map but skips Pref ready.wall(); assert.equal(state.events.includes('down'), false); ready.block(); state.frames.shift()(); assert.equal(Config.firstGameplayEntryComplete, true); - assert.equal(state.holds, 0); assert.equal(state.events.at(-1), 'down'); + assert.equal(state.holds, 0); assert.deepEqual(state.events.slice(-2), ['down', 'intro-idle']); assert.equal(state.popupCallbacks.length, 0); }); diff --git a/tools/test-gameplay-intro-loading.cjs b/tools/test-gameplay-intro-loading.cjs new file mode 100644 index 0000000..f4436f6 --- /dev/null +++ b/tools/test-gameplay-intro-loading.cjs @@ -0,0 +1,196 @@ +// Run: node --test tools/test-gameplay-intro-loading.cjs +const test = require('node:test'); +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const vm = require('node:vm'); +const ts = require('typescript'); + +function loadClass(file, names, globals) { + const source = ts.createSourceFile(file, fs.readFileSync(file, 'utf8'), ts.ScriptTarget.Latest, true); + const declaration = source.statements.find(ts.isClassDeclaration); + const members = names.map(name => declaration.members.find(m => m.name && m.name.getText(source) === name).getText(source)); + return vm.runInNewContext(ts.transpileModule(`class ${declaration.name.text} { ${members.join('\n')} }\n${declaration.name.text}`, { + compilerOptions: { target: ts.ScriptTarget.ES2017 }, + }).outputText, globals); +} +const flush = async () => { for (let i = 0; i < 5; i++) await Promise.resolve(); }; + +function fixture() { + const state = { blocksBusy: false, entryBusy: false, destroyed: false, requests: [], schedules: [], timers: [], bundles: new Map(), released: [] }; + const pipeline = () => ({ pipes: [], insert(fn, index) { this.pipes.splice(index, 0, fn); } }); + const cc = { + sys: { platform: 'wechat', WECHAT_GAME: 'wechat' }, fx: {}, warn() {}, + Node: { EventType: { TOUCH_END: 'touchend' } }, + isValid: node => !!node && !node.destroyed, + assetManager: { + pipeline: pipeline(), fetchPipeline: pipeline(), + getBundle: name => state.bundles.get(name), + removeBundle: bundle => state.bundles.delete(bundle.name), + loadBundle: () => assert.fail('background predownload must not load a Bundle'), + }, + }; + const wx = { preDownloadSubpackage: options => state.requests.push(options) }; + const BlockAssetManager = { instance: { hasPendingLoads: () => state.blocksBusy } }; + const mod = { exports: {} }; + vm.runInNewContext(ts.transpileModule(fs.readFileSync('assets/Script/module/Tool/GameTool.ts', 'utf8'), { + compilerOptions: { target: ts.ScriptTarget.ES2017, module: ts.ModuleKind.CommonJS }, + }).outputText, { + module: mod, exports: mod.exports, cc, wx, console: { log() {} }, + require: name => name.endsWith('/BlockAssetManager') ? { default: BlockAssetManager } : { default: {}, MiniGameSdk: {} }, + }); + const tool = cc.fx.GameTool = mod.exports.GameTool; + tool.trackResourceLoads(); + cc.fx.GameConfig = { isGameplayEntryPreparing: () => state.entryBusy }; + const Manager = loadClass('assets/Script/SceneManager.ts', [ + 'activeInstance', 'scheduleGameplayIntroPredownload', 'warmupGameplayPopupBundles', + 'releaseDynamicPopup', 'releaseDynamicPopupBundle', 'releaseDynamicPopupBundleIfUnused', + 'releaseOrphanedPopupBundle', 'onDestroy', + ], { cc, wx, console: { log() {} }, setTimeout: fn => state.timers.push(fn) }); + const manager = Object.assign(new Manager(), { + node: { getChildByName: () => null, off() {} }, + dynamicPopupStates: {}, dynamicPopupLoads: {}, + isPopupRuntimeAlive: () => !state.destroyed, + scheduleOnce: (fn, delay) => state.schedules.push({ fn, delay }), + finishDynamicPopupLoad() {}, unbindLosePanel() {}, unbindPropWindowPanel() {}, + clearDynamicPopupRetry() {}, clearFlyCoins() {}, disposeJungleTreasure() {}, + }); + tool.shouldRetainGameplayPopupBundlesForGameSceneReload = () => true; + Manager.activeInstance = manager; + const tick = () => { assert.ok(state.schedules.length); state.schedules.shift().fn(); }; + const bundle = name => { + const result = { name, releaseAll: () => state.released.push(name) }; + state.bundles.set(name, result); return result; + }; + return { state, cc, wx, tool, manager, Manager, tick, bundle }; +} + +test('resource tracking preserves pipeline input/results and drains success and failure exactly once', () => { + const { cc, tool } = fixture(); + tool.trackResourceLoads(); + for (const pipeline of [cc.assetManager.pipeline, cc.assetManager.fetchPipeline]) { + assert.equal(pipeline.pipes.length, 1, 'tracking is installed once'); + let callbackArgs; + const task = { input: ['asset'], onComplete(...args) { callbackArgs = args; } }; + pipeline.pipes[0](task, () => assert.equal(task.output, task.input)); + assert.equal(tool.hasPendingGameplayResourceLoads(), true); + const error = new Error('download failed'); + task.onComplete(error, 'result'); + assert.deepEqual(callbackArgs, [error, 'result']); + assert.equal(tool.hasPendingGameplayResourceLoads(), false); + } +}); + +test('Block idle check includes queued, in-flight, decoding and whole background batches', () => { + const Block = loadClass('assets/Script/module/Tool/BlockAssetManager.ts', ['hasPendingLoads'], {}); + const block = Object.assign(new Block(), { + foregroundLoads: 0, entryDownloadHolds: 0, backgroundRunning: false, + loading: new Map(), fileDownloads: new Map(), downloadQueue: [], + }); + assert.equal(block.hasPendingLoads(), false); + for (const key of ['foregroundLoads', 'entryDownloadHolds']) { + block[key] = 1; assert.equal(block.hasPendingLoads(), true); block[key] = 0; + } + for (const key of ['loading', 'fileDownloads']) { + block[key].set('pending', {}); assert.equal(block.hasPendingLoads(), true); block[key].clear(); + } + block.backgroundRunning = true; assert.equal(block.hasPendingLoads(), true); block.backgroundRunning = false; + block.downloadQueue.push({}); assert.equal(block.hasPendingLoads(), true); +}); + +test('intro waits for block queue, engine loading, popup downloads, user popup and stable idle', async () => { + const { state, cc, tool, manager, tick } = fixture(); + manager.scheduleGameplayIntroPredownload(); + manager.scheduleGameplayIntroPredownload(); + assert.equal(state.schedules.length, 1); + state.blocksBusy = true; tick(); tick(); + state.blocksBusy = false; + const task = { input: 'queued asset' }; + cc.assetManager.pipeline.pipes[0](task, () => {}); tick(); + task.onComplete(null, {}); + tool._gameplayPopupSubpackagePreloadPromise = {}; tick(); + tool._gameplayPopupSubpackagePreloadPromise = null; + tool._gameplayPopupMemoryWarmupPromise = {}; tick(); + tool._gameplayPopupMemoryWarmupPromise = null; + manager.dynamicPopupLoads.pause = true; tick(); + delete manager.dynamicPopupLoads.pause; + state.entryBusy = true; tick(); state.entryBusy = false; + tick(); assert.equal(state.requests.length, 0); + tick(); assert.equal(state.requests.length, 1); + assert.equal(state.requests[0].name, 'gameplay_intro'); + state.requests[0].success(); await flush(); + assert.equal(tool.isGameplayIntroDownloaded(), true); + assert.equal(state.bundles.size, 0, 'disk caching does not register a Bundle'); + await tool.predownloadGameplayIntro(); + assert.equal(state.requests.length, 1, 'successful session cache avoids duplicate download checks'); +}); + +test('failure retries only after a delay and another idle check; leaving scene cancels pending work', async () => { + const { state, manager, tick } = fixture(); + manager.scheduleGameplayIntroPredownload(); tick(); tick(); + state.requests[0].fail(new Error('offline')); await flush(); + assert.equal(state.schedules[0].delay, 10); + state.blocksBusy = true; tick(); tick(); + assert.equal(state.requests.length, 1); + state.blocksBusy = false; tick(); tick(); + assert.equal(state.requests.length, 2); + state.destroyed = true; state.requests[1].fail(new Error('offline')); await flush(); + assert.equal(state.schedules.length, 0); +}); + +test('departing before idle never starts a download; old SDK does not execute a subpackage', () => { + const f = fixture(); f.manager.scheduleGameplayIntroPredownload(); + f.state.destroyed = true; f.tick(); assert.equal(f.state.requests.length, 0); + const old = fixture(); delete old.wx.preDownloadSubpackage; + old.wx.loadSubpackage = () => assert.fail('must not execute scripts as background predownload'); + old.manager.scheduleGameplayIntroPredownload(); assert.equal(old.state.schedules.length, 0); +}); + +test('concurrent callers share one download, and cached Bundle needs no predownload', async () => { + const { tool, state, bundle } = fixture(); + const first = tool.predownloadGameplayIntro(); + assert.equal(tool.predownloadGameplayIntro(), first); + state.requests[0].success(); assert.equal(await first, true); + const second = fixture(); second.bundle('gameplay_intro'); + assert.equal(await second.tool.predownloadGameplayIntro(), true); + assert.equal(second.state.requests.length, 0); +}); + +test('scene reload releases intro resources while retaining ordinary popup bundles', () => { + const { state, manager, bundle } = fixture(); + for (const [name, bundleName] of [['gameplayIntro', 'gameplay_intro'], ['pause', 'pause']]) { + const root = { active: true, removeFromParent() {}, destroy() { this.destroyed = true; } }; + manager.dynamicPopupStates[name] = { bundleName, bundle: bundle(bundleName), root, callbacks: [], requestId: 1 }; + } + manager.onDestroy(); + assert.deepEqual(state.released, ['gameplay_intro']); + assert.equal(state.bundles.has('pause'), true); + assert.equal(state.bundles.has('gameplay_intro'), false); +}); + +test('unowned intro bundle is cleaned even with retention enabled and no popup state', () => { + const { state, manager, bundle } = fixture(); bundle('gameplay_intro'); manager.onDestroy(); + assert.deepEqual(state.released, ['gameplay_intro']); +}); + +for (const owned of [false, true]) { + test(`late old-scene intro callback respects actual new-scene ownership: ${owned}`, () => { + const { state, manager, Manager, bundle } = fixture(); const intro = bundle('gameplay_intro'); + if (owned) manager.dynamicPopupStates.gameplayIntro = { bundleName: 'gameplay_intro', loading: true }; + Manager.releaseOrphanedPopupBundle('gameplay_intro', intro); state.timers.shift()(); + assert.equal(state.bundles.has('gameplay_intro'), owned); + }); +} + +for (const mode of ['skip', 'cached', 'load', 'failure']) { + test(`low-memory warmup signals completion so idle download can start: ${mode}`, () => { + const { cc, tool, manager, bundle } = fixture(); let calls = 0, done; + tool.isIOSDevice = () => mode !== 'skip'; + if (mode === 'cached') bundle('pause'); + cc.assetManager.loadBundle = (name, callback) => { assert.equal(name, 'pause'); done = callback; }; + manager.warmupGameplayPopupBundles(false, null, error => { + assert.equal(!!error, mode === 'failure'); calls++; + }); + if (done) { assert.equal(calls, 0); done(mode === 'failure' ? new Error('offline') : null, {}); } + assert.equal(calls, 1); + }); +}