xx 1 жил өмнө
commit
33ffc3b9fa
100 өөрчлөгдсөн 18306 нэмэгдсэн , 0 устгасан
  1. 2 0
      .creator/asset-template/typescript/Custom Script Template Help Documentation.url
  2. 5 0
      .creator/default-meta.json
  3. 24 0
      .gitignore
  4. 14 0
      assets/resources.meta
  5. 9 0
      assets/resources/audio.meta
  6. 9 0
      assets/resources/font.meta
  7. 14 0
      assets/resources/font/lanse.fnt
  8. 132 0
      assets/resources/font/lanse.fnt.meta
  9. BIN
      assets/resources/font/lanse_0.png
  10. 134 0
      assets/resources/font/lanse_0.png.meta
  11. 9 0
      assets/resources/prefabs.meta
  12. 757 0
      assets/resources/prefabs/box.prefab
  13. 13 0
      assets/resources/prefabs/box.prefab.meta
  14. 238 0
      assets/resources/prefabs/coin.prefab
  15. 13 0
      assets/resources/prefabs/coin.prefab.meta
  16. 4841 0
      assets/resources/prefabs/game.prefab
  17. 13 0
      assets/resources/prefabs/game.prefab.meta
  18. 242 0
      assets/resources/prefabs/run_level_item.prefab
  19. 13 0
      assets/resources/prefabs/run_level_item.prefab.meta
  20. 443 0
      assets/resources/prefabs/wall.prefab
  21. 13 0
      assets/resources/prefabs/wall.prefab.meta
  22. 9 0
      assets/resources/ui.meta
  23. 5493 0
      assets/resources/ui/home.prefab
  24. 13 0
      assets/resources/ui/home.prefab.meta
  25. 580 0
      assets/resources/ui/setting.prefab
  26. 13 0
      assets/resources/ui/setting.prefab.meta
  27. 9 0
      assets/scene.meta
  28. 1114 0
      assets/scene/main.scene
  29. 11 0
      assets/scene/main.scene.meta
  30. 449 0
      assets/scene/test.scene
  31. 11 0
      assets/scene/test.scene.meta
  32. 9 0
      assets/script.meta
  33. 9 0
      assets/script/GameManager.ts
  34. 9 0
      assets/script/GameManager.ts.meta
  35. 80 0
      assets/script/config.ts
  36. 9 0
      assets/script/config.ts.meta
  37. 111 0
      assets/script/data.ts
  38. 9 0
      assets/script/data.ts.meta
  39. 9 0
      assets/script/game.meta
  40. 24 0
      assets/script/game/base.ts
  41. 9 0
      assets/script/game/base.ts.meta
  42. 96 0
      assets/script/game/box.ts
  43. 9 0
      assets/script/game/box.ts.meta
  44. 40 0
      assets/script/game/buff_show.ts
  45. 9 0
      assets/script/game/buff_show.ts.meta
  46. 448 0
      assets/script/game/car.ts
  47. 9 0
      assets/script/game/car.ts.meta
  48. 60 0
      assets/script/game/coin.ts
  49. 9 0
      assets/script/game/coin.ts.meta
  50. 373 0
      assets/script/game/game.ts
  51. 9 0
      assets/script/game/game.ts.meta
  52. 311 0
      assets/script/game/joystick.ts
  53. 9 0
      assets/script/game/joystick.ts.meta
  54. 94 0
      assets/script/game/pool.ts
  55. 9 0
      assets/script/game/pool.ts.meta
  56. 42 0
      assets/script/game/results.ts
  57. 9 0
      assets/script/game/results.ts.meta
  58. 77 0
      assets/script/game/run_level_item.ts
  59. 9 0
      assets/script/game/run_level_item.ts.meta
  60. 113 0
      assets/script/game/touch.ts
  61. 9 0
      assets/script/game/touch.ts.meta
  62. 20 0
      assets/script/game/wall.ts
  63. 9 0
      assets/script/game/wall.ts.meta
  64. 87 0
      assets/script/http.ts
  65. 9 0
      assets/script/http.ts.meta
  66. 9 0
      assets/script/lib.meta
  67. 196 0
      assets/script/lib/Coroutine.ts
  68. 9 0
      assets/script/lib/Coroutine.ts.meta
  69. 6 0
      assets/script/lib/IPoolHanderComponent.ts
  70. 9 0
      assets/script/lib/IPoolHanderComponent.ts.meta
  71. 80 0
      assets/script/lib/clientEvent.ts
  72. 9 0
      assets/script/lib/clientEvent.ts.meta
  73. 142 0
      assets/script/main.ts
  74. 9 0
      assets/script/main.ts.meta
  75. 9 0
      assets/script/manager.meta
  76. 55 0
      assets/script/manager/ResourceUtil.ts
  77. 9 0
      assets/script/manager/ResourceUtil.ts.meta
  78. 56 0
      assets/script/manager/audioManager.ts
  79. 9 0
      assets/script/manager/audioManager.ts.meta
  80. 23 0
      assets/script/manager/dataManager.ts
  81. 9 0
      assets/script/manager/dataManager.ts.meta
  82. 98 0
      assets/script/manager/imageCacheManager.ts
  83. 9 0
      assets/script/manager/imageCacheManager.ts.meta
  84. 81 0
      assets/script/manager/uiManager.ts
  85. 9 0
      assets/script/manager/uiManager.ts.meta
  86. 11 0
      assets/script/manager/userDataManager.ts
  87. 9 0
      assets/script/manager/userDataManager.ts.meta
  88. 456 0
      assets/script/sdkUtil.ts
  89. 9 0
      assets/script/sdkUtil.ts.meta
  90. 64 0
      assets/script/tools.ts
  91. 9 0
      assets/script/tools.ts.meta
  92. 9 0
      assets/script/ui.meta
  93. 9 0
      assets/script/ui/home.meta
  94. 28 0
      assets/script/ui/home/home.ts
  95. 9 0
      assets/script/ui/home/home.ts.meta
  96. 14 0
      assets/script/ui/home/home_bottom.ts
  97. 9 0
      assets/script/ui/home/home_bottom.ts.meta
  98. 15 0
      assets/script/ui/home/home_car.ts
  99. 9 0
      assets/script/ui/home/home_car.ts.meta
  100. 23 0
      assets/script/ui/home/home_top.ts

+ 2 - 0
.creator/asset-template/typescript/Custom Script Template Help Documentation.url

@@ -0,0 +1,2 @@
+[InternetShortcut]
+URL=https://docs.cocos.com/creator/manual/en/scripting/setup.html#custom-script-template

+ 5 - 0
.creator/default-meta.json

@@ -0,0 +1,5 @@
+{
+  "image": {
+    "type": "sprite-frame"
+  }
+}

+ 24 - 0
.gitignore

@@ -0,0 +1,24 @@
+
+#///////////////////////////
+# Cocos Creator 3D Project
+#///////////////////////////
+library/
+temp/
+local/
+build/
+profiles/
+native
+#//////////////////////////
+# NPM
+#//////////////////////////
+node_modules/
+
+#//////////////////////////
+# VSCode
+#//////////////////////////
+.vscode/
+
+#//////////////////////////
+# WebStorm
+#//////////////////////////
+.idea/

+ 14 - 0
assets/resources.meta

@@ -0,0 +1,14 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "48e10fde-6d50-4938-825c-57e90a50c17d",
+  "files": [],
+  "subMetas": {},
+  "userData": {
+    "isBundle": true,
+    "bundleConfigID": "default",
+    "bundleName": "resources",
+    "priority": 8
+  }
+}

+ 9 - 0
assets/resources/audio.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "589bbaff-85f2-46b6-a215-f2c5e0f74ec4",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/resources/font.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "ccec0f38-48de-489e-80f5-50d0cb0fa107",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 14 - 0
assets/resources/font/lanse.fnt

@@ -0,0 +1,14 @@
+info face="楷体" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=4,4,4,4 spacing=1,1 outline=0
+common lineHeight=33 base=28 scaleW=800 scaleH=120 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
+page id=0 file="lanse_0.png"
+chars count=10
+char id=48   x=79    y=0     width=89    height=110   xoffset=-4    yoffset=-4    xadvance=81    page=0  chnl=15
+char id=49   x=639   y=0     width=42    height=106   xoffset=-4    yoffset=-4    xadvance=34    page=0  chnl=15
+char id=50   x=407   y=0     width=77    height=106   xoffset=-4    yoffset=-4    xadvance=69    page=0  chnl=15
+char id=51   x=485   y=0     width=76    height=106   xoffset=-4    yoffset=-4    xadvance=68    page=0  chnl=15
+char id=52   x=169   y=0     width=78    height=109   xoffset=-4    yoffset=-4    xadvance=70    page=0  chnl=15
+char id=53   x=682   y=0     width=74    height=103   xoffset=-4    yoffset=-4    xadvance=66    page=0  chnl=15
+char id=54   x=562   y=0     width=76    height=106   xoffset=-4    yoffset=-4    xadvance=68    page=0  chnl=15
+char id=55   x=329   y=0     width=77    height=108   xoffset=-4    yoffset=-4    xadvance=69    page=0  chnl=15
+char id=56   x=248   y=0     width=80    height=108   xoffset=-4    yoffset=-4    xadvance=72    page=0  chnl=15
+char id=57   x=0     y=0     width=78    height=114   xoffset=-4    yoffset=-4    xadvance=70    page=0  chnl=15

+ 132 - 0
assets/resources/font/lanse.fnt.meta

@@ -0,0 +1,132 @@
+{
+  "ver": "1.0.6",
+  "importer": "bitmap-font",
+  "imported": true,
+  "uuid": "45a05140-0930-4611-bb56-3f5781a7144b",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "_fntConfig": {
+      "commonHeight": 33,
+      "fontSize": 32,
+      "atlasName": "lanse_0.png",
+      "fontDefDictionary": {
+        "48": {
+          "rect": {
+            "x": 79,
+            "y": 0,
+            "width": 89,
+            "height": 110
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 81
+        },
+        "49": {
+          "rect": {
+            "x": 639,
+            "y": 0,
+            "width": 42,
+            "height": 106
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 34
+        },
+        "50": {
+          "rect": {
+            "x": 407,
+            "y": 0,
+            "width": 77,
+            "height": 106
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 69
+        },
+        "51": {
+          "rect": {
+            "x": 485,
+            "y": 0,
+            "width": 76,
+            "height": 106
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 68
+        },
+        "52": {
+          "rect": {
+            "x": 169,
+            "y": 0,
+            "width": 78,
+            "height": 109
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 70
+        },
+        "53": {
+          "rect": {
+            "x": 682,
+            "y": 0,
+            "width": 74,
+            "height": 103
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 66
+        },
+        "54": {
+          "rect": {
+            "x": 562,
+            "y": 0,
+            "width": 76,
+            "height": 106
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 68
+        },
+        "55": {
+          "rect": {
+            "x": 329,
+            "y": 0,
+            "width": 77,
+            "height": 108
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 69
+        },
+        "56": {
+          "rect": {
+            "x": 248,
+            "y": 0,
+            "width": 80,
+            "height": 108
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 72
+        },
+        "57": {
+          "rect": {
+            "x": 0,
+            "y": 0,
+            "width": 78,
+            "height": 114
+          },
+          "xOffset": -4,
+          "yOffset": -4,
+          "xAdvance": 70
+        }
+      },
+      "kerningDict": {}
+    },
+    "fontSize": 32,
+    "textureUuid": "3812391c-e1a3-4c26-abf3-5f7cd6e75dbe"
+  }
+}

BIN
assets/resources/font/lanse_0.png


+ 134 - 0
assets/resources/font/lanse_0.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.26",
+  "importer": "image",
+  "imported": true,
+  "uuid": "3812391c-e1a3-4c26-abf3-5f7cd6e75dbe",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "3812391c-e1a3-4c26-abf3-5f7cd6e75dbe@6c48a",
+      "displayName": "lanse_0",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "3812391c-e1a3-4c26-abf3-5f7cd6e75dbe",
+        "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": "3812391c-e1a3-4c26-abf3-5f7cd6e75dbe@f9941",
+      "displayName": "lanse_0",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": -22,
+        "offsetY": 3,
+        "trimX": 4,
+        "trimY": 4,
+        "width": 748,
+        "height": 106,
+        "rawWidth": 800,
+        "rawHeight": 120,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -374,
+            -53,
+            0,
+            374,
+            -53,
+            0,
+            -374,
+            53,
+            0,
+            374,
+            53,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            4,
+            116,
+            752,
+            116,
+            4,
+            10,
+            752,
+            10
+          ],
+          "nuv": [
+            0.005,
+            0.08333333333333333,
+            0.94,
+            0.08333333333333333,
+            0.005,
+            0.9666666666666667,
+            0.94,
+            0.9666666666666667
+          ],
+          "minPos": [
+            -374,
+            -53,
+            0
+          ],
+          "maxPos": [
+            374,
+            53,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "3812391c-e1a3-4c26-abf3-5f7cd6e75dbe@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "3812391c-e1a3-4c26-abf3-5f7cd6e75dbe@f9941"
+  }
+}

+ 9 - 0
assets/resources/prefabs.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "c3788de4-b671-49d1-ab38-4a3312f1d8fe",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 757 - 0
assets/resources/prefabs/box.prefab

@@ -0,0 +1,757 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "box",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "persistent": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "box",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      },
+      {
+        "__id__": 12
+      },
+      {
+        "__id__": 18
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 24
+      },
+      {
+        "__id__": 26
+      },
+      {
+        "__id__": 28
+      },
+      {
+        "__id__": 30
+      },
+      {
+        "__id__": 32
+      }
+    ],
+    "_prefab": {
+      "__id__": 34
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "fku",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 5
+      },
+      {
+        "__id__": 7
+      },
+      {
+        "__id__": 9
+      }
+    ],
+    "_prefab": {
+      "__id__": 11
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -126,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 4
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 220,
+      "height": 15
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "3a9FDPsn1NLZzz2I5Yf9PL"
+  },
+  {
+    "__type__": "cc.RigidBody2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 6
+    },
+    "enabledContactListener": false,
+    "bullet": false,
+    "awakeOnLoad": true,
+    "_group": 1,
+    "_type": 1,
+    "_allowSleep": true,
+    "_gravityScale": 1,
+    "_linearDamping": 0,
+    "_angularDamping": 0,
+    "_linearVelocity": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_angularVelocity": 0,
+    "_fixedRotation": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "b8MGljJHlDCal9n0MkWss0"
+  },
+  {
+    "__type__": "cc.BoxCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 8
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": true,
+    "_friction": 0.2,
+    "_restitution": 0.2,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_size": {
+      "__type__": "cc.Size",
+      "width": 220,
+      "height": 15
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "b34e4hNRtPQIitlBReREdt"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 10
+    },
+    "_alignFlags": 4,
+    "_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": "37TgpIERVAupJDMQIjKmlr"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "b1KcAzsZtDML1sIiqtxSKb",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "buff",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 13
+      },
+      {
+        "__id__": 15
+      }
+    ],
+    "_prefab": {
+      "__id__": 17
+    },
+    "_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": 4,
+      "y": 4,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 12
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 14
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 50,
+      "height": 48
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "fbve4zyvlMTLaxnPoJqlNb"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 12
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 16
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "a4557bfa-8be4-4944-a707-12fa8fd0782c@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": "10mqmWVQ1DaZ91aBqBUy04"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "fb8CVvVVlNp66WC+Ylp1vZ",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "lab_scores",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 19
+      },
+      {
+        "__id__": 21
+      }
+    ],
+    "_prefab": {
+      "__id__": 23
+    },
+    "_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": 33554432,
+    "_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": 88.984375,
+      "height": 100.8
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "a7Kz7M1kVPK6thO1fGGTh6"
+  },
+  {
+    "__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": "10",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 80,
+    "_fontSize": 80,
+    "_fontFamily": "Arial",
+    "_lineHeight": 80,
+    "_overflow": 0,
+    "_enableWrapText": true,
+    "_font": null,
+    "_isSystemFontUsed": true,
+    "_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": 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": "0aL+VBSUhOrIJlwN5qReIB"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "d9qIaj8WdKsLIYywJBDcJJ",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 25
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 228,
+      "height": 267
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "71zbfTkyJFMLIjHBX6kbu2"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 27
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "5ab4c80d-cd4b-4e5f-b623-cb80c226235c@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": "cbj5JhfFxOprgkUdyDHNA+"
+  },
+  {
+    "__type__": "cc.RigidBody2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": false,
+    "__prefab": {
+      "__id__": 29
+    },
+    "enabledContactListener": false,
+    "bullet": false,
+    "awakeOnLoad": true,
+    "_group": 1,
+    "_type": 0,
+    "_allowSleep": true,
+    "_gravityScale": 1,
+    "_linearDamping": 0,
+    "_angularDamping": 0,
+    "_linearVelocity": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_angularVelocity": 0,
+    "_fixedRotation": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "96a2p6Xq5ID7IQopEEvZNs"
+  },
+  {
+    "__type__": "cc.BoxCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 31
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": true,
+    "_friction": -1,
+    "_restitution": 0,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_size": {
+      "__type__": "cc.Size",
+      "width": 228,
+      "height": 200
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "49JOH1ZsBErJLx+T73JskP"
+  },
+  {
+    "__type__": "4f3cbMepA9Ac4O7a/NGVch/",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 33
+    },
+    "buff": {
+      "__id__": 12
+    },
+    "collider": {
+      "__id__": 7
+    },
+    "lab_scores": {
+      "__id__": 18
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "43IJGNDJFD1ZvjeBsMnc05"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "b2N9bDeXdCBYa5gNp3no/9",
+    "instance": null,
+    "targetOverrides": null
+  }
+]

+ 13 - 0
assets/resources/prefabs/box.prefab.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "3509f90d-1961-42f4-ac0c-3ae514c7596d",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "box"
+  }
+}

+ 238 - 0
assets/resources/prefabs/coin.prefab

@@ -0,0 +1,238 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "coin",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "persistent": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "coin",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 2
+      },
+      {
+        "__id__": 4
+      },
+      {
+        "__id__": 6
+      },
+      {
+        "__id__": 8
+      },
+      {
+        "__id__": 10
+      }
+    ],
+    "_prefab": {
+      "__id__": 12
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 626.409,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 3
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 94,
+      "height": 94
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "6bjJJDDr1O6od4kcyIZ2Hj"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 5
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "de77cbd6-2722-4148-a5ac-a38a195c5422@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": "31GbV/pBpGvKAHIZNG5VCU"
+  },
+  {
+    "__type__": "cc.RigidBody2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": false,
+    "__prefab": {
+      "__id__": 7
+    },
+    "enabledContactListener": false,
+    "bullet": false,
+    "awakeOnLoad": true,
+    "_group": 1,
+    "_type": 2,
+    "_allowSleep": true,
+    "_gravityScale": 0,
+    "_linearDamping": 0,
+    "_angularDamping": 0,
+    "_linearVelocity": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_angularVelocity": 0,
+    "_fixedRotation": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "041wZDinlCdLfn8adHYonh"
+  },
+  {
+    "__type__": "cc.CircleCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 9
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": true,
+    "_friction": 0,
+    "_restitution": 0,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_radius": 47,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "81PQIMti1IAYYKjRgstApg"
+  },
+  {
+    "__type__": "e6d46gnLghMFZ4pVJnERCMP",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 11
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "212ugsQnJNqIqOLI6E4/z0"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "c7mD4XrVpNbZF+HZ37zs5B",
+    "instance": null,
+    "targetOverrides": null
+  }
+]

+ 13 - 0
assets/resources/prefabs/coin.prefab.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "ce6ba8bd-d68a-4836-afbd-ab4729daf1da",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "coin"
+  }
+}

+ 4841 - 0
assets/resources/prefabs/game.prefab

@@ -0,0 +1,4841 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "game",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "persistent": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "game",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      },
+      {
+        "__id__": 10
+      },
+      {
+        "__id__": 42
+      },
+      {
+        "__id__": 50
+      },
+      {
+        "__id__": 56
+      },
+      {
+        "__id__": 94
+      },
+      {
+        "__id__": 170
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 202
+      },
+      {
+        "__id__": 204
+      },
+      {
+        "__id__": 206
+      },
+      {
+        "__id__": 208
+      },
+      {
+        "__id__": 210
+      }
+    ],
+    "_prefab": {
+      "__id__": 212
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "bg",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 5
+      },
+      {
+        "__id__": 7
+      }
+    ],
+    "_prefab": {
+      "__id__": 9
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 4
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "522hM/J3VMXrj76bkLvaPg"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": false,
+    "__prefab": {
+      "__id__": 6
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "cb0cfad0-5580-4770-8cd6-820c7d5d75e8@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": "26+18j1pdLD5RYEuV9yBWv"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 8
+    },
+    "_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": 1080,
+    "_originalHeight": 1920,
+    "_alignMode": 2,
+    "_lockFlags": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "d9DJneTeBFjJZW5WbktRxG"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "dafBkdJpJCRKMIKDpxzw2A",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "scroll",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 11
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 37
+      },
+      {
+        "__id__": 39
+      }
+    ],
+    "_prefab": {
+      "__id__": 41
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "car",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 10
+    },
+    "_children": [
+      {
+        "__id__": 12
+      },
+      {
+        "__id__": 18
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 24
+      },
+      {
+        "__id__": 26
+      },
+      {
+        "__id__": 28
+      },
+      {
+        "__id__": 30
+      },
+      {
+        "__id__": 32
+      },
+      {
+        "__id__": 34
+      }
+    ],
+    "_prefab": {
+      "__id__": 36
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -300,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Label",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 11
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 13
+      },
+      {
+        "__id__": 15
+      }
+    ],
+    "_prefab": {
+      "__id__": 17
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 81.705,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 12
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 14
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 88.984375,
+      "height": 100.8
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "3de1seH0VJS4HzOJ4EKEdG"
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 12
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 16
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_string": "20",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 80,
+    "_fontSize": 80,
+    "_fontFamily": "Arial",
+    "_lineHeight": 80,
+    "_overflow": 0,
+    "_enableWrapText": true,
+    "_font": null,
+    "_isSystemFontUsed": true,
+    "_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": 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": "d9L+HFB1xIYah8L8nEGeGX"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "fd3UTZi9xLHbTO1rqVU+1j",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "spr",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 11
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 19
+      },
+      {
+        "__id__": 21
+      }
+    ],
+    "_prefab": {
+      "__id__": 23
+    },
+    "_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": 33554432,
+    "_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": 90,
+      "height": 165
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "fdEePG7KBEmJJtWvvOHya7"
+  },
+  {
+    "__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,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": null,
+    "_type": 0,
+    "_fillType": 0,
+    "_sizeMode": 2,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_useGrayscale": false,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "ab7U5QbBRDTaC6712RJFqS"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "f4KKxShv1Kpad1EEd4KDM4",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 11
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 25
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 90,
+      "height": 165
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "dcwyc5I4FJ+45LqwPtFKEK"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 11
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 27
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "06324e83-5d8e-46f2-8a60-a415343a3236@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": "6fzYfUb6BBNohEbFGh44yt"
+  },
+  {
+    "__type__": "cc.RigidBody2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 11
+    },
+    "_enabled": false,
+    "__prefab": {
+      "__id__": 29
+    },
+    "enabledContactListener": true,
+    "bullet": true,
+    "awakeOnLoad": true,
+    "_group": 1,
+    "_type": 2,
+    "_allowSleep": true,
+    "_gravityScale": -3,
+    "_linearDamping": 1,
+    "_angularDamping": 0,
+    "_linearVelocity": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 1
+    },
+    "_angularVelocity": 0,
+    "_fixedRotation": true,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "dcZtTDAXVNNqYKS28hC6n8"
+  },
+  {
+    "__type__": "cc.BoxCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 11
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 31
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": true,
+    "_friction": 0,
+    "_restitution": 0,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": -20
+    },
+    "_size": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 120
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "d65pOr0rBCdJI2Ag1OCuJJ"
+  },
+  {
+    "__type__": "64d1e4IPKZOXZQz4W1Lt8Nu",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 11
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 33
+    },
+    "car_collider": {
+      "__id__": 34
+    },
+    "lab_hp": {
+      "__id__": 12
+    },
+    "move_speed_y": 700,
+    "move_speed_x": 700,
+    "is_open_jiaozheng": true,
+    "spr": {
+      "__id__": 18
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "7eFXYlD4JKF5EOx7h5Ex9z"
+  },
+  {
+    "__type__": "cc.CircleCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 11
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 35
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": true,
+    "_friction": 0.2,
+    "_restitution": 0.3,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 100
+    },
+    "_radius": 40,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "20vpNE/vZJhYdxVMaKoW46"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "81ygviV8tB3q8tBYkK+yvY",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 10
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 38
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "d3w4r53xBOuJJn2o5P0y6l"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 10
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 40
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "cb0cfad0-5580-4770-8cd6-820c7d5d75e8@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_type": 2,
+    "_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": "59yeZyDxpIFrmWs8epgYmV"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "aelOHiF8BAeIxwCvetLdN5",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Node",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 43
+      },
+      {
+        "__id__": 45
+      },
+      {
+        "__id__": 47
+      }
+    ],
+    "_prefab": {
+      "__id__": 49
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -2044.262,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 42
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 44
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 100
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "cfYgkcjfZLQ41b5HGVXf/Z"
+  },
+  {
+    "__type__": "cc.RigidBody2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 42
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 46
+    },
+    "enabledContactListener": true,
+    "bullet": false,
+    "awakeOnLoad": true,
+    "_group": 1,
+    "_type": 1,
+    "_allowSleep": false,
+    "_gravityScale": 1,
+    "_linearDamping": 0,
+    "_angularDamping": 0,
+    "_linearVelocity": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_angularVelocity": 0,
+    "_fixedRotation": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "28ktsZYLtP6oSf2OuAl+OB"
+  },
+  {
+    "__type__": "cc.BoxCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 42
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 48
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": true,
+    "_friction": 0.2,
+    "_restitution": 0,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_size": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 100
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "59DTXNNwhHib6OhHtwV+UT"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "49JRMIzRBJNr4soTS6x8Wf",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "pool",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_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": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 50
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 52
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 100
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "84Rq6kGwFPzq/0dTMp231Q"
+  },
+  {
+    "__type__": "d08deuD7YVNiJknknn82OOI",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 50
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 54
+    },
+    "box_pf": {
+      "__uuid__": "3509f90d-1961-42f4-ac0c-3ae514c7596d",
+      "__expectedType__": "cc.Prefab"
+    },
+    "coin_pf": {
+      "__uuid__": "ce6ba8bd-d68a-4836-afbd-ab4729daf1da",
+      "__expectedType__": "cc.Prefab"
+    },
+    "wall_pf": {
+      "__uuid__": "0a6bbb5a-807f-4b95-97a2-d7e812e40fe9",
+      "__expectedType__": "cc.Prefab"
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "4eDXOSpBNGn6VsJMUW+UKN"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "00kyF6nu5NzoxPxJf8CDYa",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "game_info",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 57
+      },
+      {
+        "__id__": 83
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 89
+      },
+      {
+        "__id__": 91
+      }
+    ],
+    "_prefab": {
+      "__id__": 93
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "buff_show",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 56
+    },
+    "_children": [
+      {
+        "__id__": 58
+      },
+      {
+        "__id__": 64
+      },
+      {
+        "__id__": 70
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 76
+      },
+      {
+        "__id__": 78
+      },
+      {
+        "__id__": 80
+      }
+    ],
+    "_prefab": {
+      "__id__": 82
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -441.153,
+      "y": 844.2910000000002,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "dun",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 57
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 59
+      },
+      {
+        "__id__": 61
+      }
+    ],
+    "_prefab": {
+      "__id__": 63
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -20,
+      "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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 58
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 60
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 60,
+      "height": 64
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "88dcvP39dL6aErZ1ayrutZ"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 58
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 62
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "2fac7003-fcc4-4d62-b627-6730c2648933@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": "balwao/LZMmJbveEog7sVw"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "88q7Y4HSBO3pACusM/Gsec",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "xi",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 57
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 65
+      },
+      {
+        "__id__": 67
+      }
+    ],
+    "_prefab": {
+      "__id__": 69
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 61.5,
+      "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": 33554432,
+    "_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": 63,
+      "height": 69
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "85F1q/b8dJuqaY/AvPYq8P"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 64
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 68
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "a4557bfa-8be4-4944-a707-12fa8fd0782c@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": "27n+dt+rZOkqiwDwS0D6kI"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "fd6uLqLrVNILtCsUvPrpx8",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "xing",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 57
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 71
+      },
+      {
+        "__id__": 73
+      }
+    ],
+    "_prefab": {
+      "__id__": 75
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 147.5,
+      "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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 70
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 72
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 69,
+      "height": 66
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "1aO/mmqspLkrAZesE5LLhN"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 70
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 74
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "1f7RwUvLhBD6THVpiJyWc4"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "7bFCPd2LdHfZj4+CNMKQ2S",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 57
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 77
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 100
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "3eR0c/qaxE2b1EUQxfU+El"
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 57
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 79
+    },
+    "_resizeMode": 0,
+    "_layoutType": 1,
+    "_cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_startAxis": 0,
+    "_paddingLeft": 0,
+    "_paddingRight": 0,
+    "_paddingTop": 0,
+    "_paddingBottom": 0,
+    "_spacingX": 20,
+    "_spacingY": 0,
+    "_verticalDirection": 1,
+    "_horizontalDirection": 0,
+    "_constraint": 0,
+    "_constraintNum": 2,
+    "_affectedByScale": false,
+    "_isAlign": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "97BRHFYZJPkK9gVqhFGH7N"
+  },
+  {
+    "__type__": "8322aIseG1NZpujUq1t7JuC",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 57
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 81
+    },
+    "icon_buff_xi": {
+      "__id__": 64
+    },
+    "icon_buff_xing": {
+      "__id__": 70
+    },
+    "icon_buff_dun": {
+      "__id__": 58
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "1649FiurJFbZw834trkw0m"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "caIWnezzZBhKifyK552hdj",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "lab_scores",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 56
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 84
+      },
+      {
+        "__id__": 86
+      }
+    ],
+    "_prefab": {
+      "__id__": 88
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 389.168,
+      "y": 843.528,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 83
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 85
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 142.24609375,
+      "height": 50.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "e8A3cvgvtBIqQUFHeVcFVj"
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 83
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 87
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_string": "积分:0",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 40,
+    "_fontSize": 40,
+    "_fontFamily": "Arial",
+    "_lineHeight": 40,
+    "_overflow": 0,
+    "_enableWrapText": true,
+    "_font": null,
+    "_isSystemFontUsed": true,
+    "_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": 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": "0b3cAN+lZG54zOPIB8HkP9"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "c39Rt8lqtPG7ciyD18/DAC",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 56
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 90
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "c730ilZFtMqKJrRLHOYw0S"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 56
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 92
+    },
+    "_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": "9cmH2ILUBPSqK65sGolLsd"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "b4KUZOGYJDvKBeCkp+Ai0M",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "touchNode",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 95
+      },
+      {
+        "__id__": 101
+      },
+      {
+        "__id__": 107
+      },
+      {
+        "__id__": 113
+      },
+      {
+        "__id__": 119
+      },
+      {
+        "__id__": 125
+      },
+      {
+        "__id__": 131
+      },
+      {
+        "__id__": 137
+      },
+      {
+        "__id__": 143
+      },
+      {
+        "__id__": 149
+      },
+      {
+        "__id__": 155
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 161
+      },
+      {
+        "__id__": 163
+      },
+      {
+        "__id__": 165
+      },
+      {
+        "__id__": 167
+      }
+    ],
+    "_prefab": {
+      "__id__": 169
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -540,
+      "y": -960,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-011",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 96
+      },
+      {
+        "__id__": 98
+      }
+    ],
+    "_prefab": {
+      "__id__": 100
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 49,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 95
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 97
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "a95aOZl8ZP6o+4rdL9zfeF"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 95
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 99
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "2b22DrrAZBFKWP36frahm4"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "ffIq1prr9AF6w/otSHiT2l",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-012",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 102
+      },
+      {
+        "__id__": 104
+      }
+    ],
+    "_prefab": {
+      "__id__": 106
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 147,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 101
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 103
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "606CwfHqhBXqitvpaNZhuo"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 101
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 105
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "5aSLvj145JuIIvYsKRAoN8"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "95p41Q12NJ+ruUE/mrXmfr",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-013",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 108
+      },
+      {
+        "__id__": 110
+      }
+    ],
+    "_prefab": {
+      "__id__": 112
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 245,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 107
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 109
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "35CG0Y2pdPEJDBYyPkEw3O"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 107
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 111
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "cel6ms+cdPt610jHzBnTXd"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "31WgqCJZBP+48T9kDOP5yX",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-014",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 114
+      },
+      {
+        "__id__": 116
+      }
+    ],
+    "_prefab": {
+      "__id__": 118
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 343,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 113
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 115
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "48XtidJN9LVKS1J573Yla5"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 113
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 117
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "8aiPhs0YlLobXbVVG0CWhG"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "a6KdOdmlxHCZxnjywGbdgf",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-015",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 120
+      },
+      {
+        "__id__": 122
+      }
+    ],
+    "_prefab": {
+      "__id__": 124
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 441,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 119
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 121
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "04IEpk9HdAubo5bHoKaJs4"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 119
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 123
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "85diCe1DpHfKWxDyNQUpFZ"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "465FZ7qbFGKLdovcC2zi4R",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-016",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 126
+      },
+      {
+        "__id__": 128
+      }
+    ],
+    "_prefab": {
+      "__id__": 130
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 539,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 125
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 127
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "7aj2OU2MZFkZ9n1GAwiZlj"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 125
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 129
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "5bPFCsIF1O6LEZKtxIF6Ov"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "bdmapEvzdF+7QKvLmI/de5",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-017",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 132
+      },
+      {
+        "__id__": 134
+      }
+    ],
+    "_prefab": {
+      "__id__": 136
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 637,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 131
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 133
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "c0yYl99PlI87Fhda9SRv4K"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 131
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 135
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "01qah3nztMWYwVxeA917Bk"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "fbv4iw/MxMW4YZ6NIgIldE",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-018",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 138
+      },
+      {
+        "__id__": 140
+      }
+    ],
+    "_prefab": {
+      "__id__": 142
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 735,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 137
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 139
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "deYjiIRItLJaYw5UDwoH14"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 137
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 141
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "b6sTLCq5tP+pJiZ0o4j7lh"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "82d8agBmFJm7Ms7h67D78h",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-019",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 144
+      },
+      {
+        "__id__": 146
+      }
+    ],
+    "_prefab": {
+      "__id__": 148
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 833,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 143
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 145
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "0dOl8Ne89LY4upBQn9/5Zh"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 143
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 147
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "e5luDiyDhDG7gfSUvN8wBc"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "a20NPl/1tGqJoq4YA836Ks",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-020",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 150
+      },
+      {
+        "__id__": 152
+      }
+    ],
+    "_prefab": {
+      "__id__": 154
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 931,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 149
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 151
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "80cPZWcEFCbq1xeDx1C0/N"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 149
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 153
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "bag2lIjJhLPJX1IfxuFrpG"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "7aqj+EklVHhIobVSdH1h/0",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "icon-021",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 94
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 156
+      },
+      {
+        "__id__": 158
+      }
+    ],
+    "_prefab": {
+      "__id__": 160
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 1029,
+      "y": 245.564,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 155
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 157
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 50
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "aeDsH6wcJOko5YEl+eeHGY"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 155
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 159
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@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": "4ednhlHtpGsp2Y2X7MU0Mc"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "6cM2Fb89JMUauTrR6x36gz",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 94
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 162
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "67KLUwoZNOALDtNnZlug4T"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 94
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 164
+    },
+    "_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": "b0qPQC9iFMsKtVOFTky/HP"
+  },
+  {
+    "__type__": "7e4b3yx3CxCcpTlijVJm9zg",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 94
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 166
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "a1f39vNBVEvoEjcHIDQAfS"
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 94
+    },
+    "_enabled": false,
+    "__prefab": {
+      "__id__": 168
+    },
+    "_resizeMode": 0,
+    "_layoutType": 1,
+    "_cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_startAxis": 0,
+    "_paddingLeft": 0,
+    "_paddingRight": 0,
+    "_paddingTop": 0,
+    "_paddingBottom": 0,
+    "_spacingX": 0,
+    "_spacingY": 0,
+    "_verticalDirection": 1,
+    "_horizontalDirection": 0,
+    "_constraint": 0,
+    "_constraintNum": 2,
+    "_affectedByScale": false,
+    "_isAlign": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "1dWFTzpzhI5bd83W8BlX95"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "29JIvGmZ9BtbD+2ZXZrERA",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "results",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 171
+      },
+      {
+        "__id__": 177
+      },
+      {
+        "__id__": 183
+      }
+    ],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 191
+      },
+      {
+        "__id__": 193
+      },
+      {
+        "__id__": 195
+      },
+      {
+        "__id__": 197
+      },
+      {
+        "__id__": 199
+      }
+    ],
+    "_prefab": {
+      "__id__": 201
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "bg",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 170
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 172
+      },
+      {
+        "__id__": 174
+      }
+    ],
+    "_prefab": {
+      "__id__": 176
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 171
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 173
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 800,
+      "height": 1000
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "4c+s0zKCxJVonCRppSZ8qe"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 171
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 175
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "273ccc74-229f-4b1a-932c-f98fa1ffca83@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": "fdSqb54XBCr7eNd7BgyuJw"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "9cKatJqVBEa7Hj0WstjrER",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Label",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 170
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 178
+      },
+      {
+        "__id__": 180
+      }
+    ],
+    "_prefab": {
+      "__id__": 182
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 177
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 179
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 200,
+      "height": 50.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "09Vq0pA4xBW6ef2aQY6f5r"
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 177
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 181
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_string": "获取积分:",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 40,
+    "_fontSize": 40,
+    "_fontFamily": "Arial",
+    "_lineHeight": 40,
+    "_overflow": 0,
+    "_enableWrapText": true,
+    "_font": null,
+    "_isSystemFontUsed": true,
+    "_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": 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": "f2wvhz28NJnrsw2Oo7f0+d"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "ddEpyjlJREMbFP2b7Gkz4H",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "btn_restart",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 170
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 184
+      },
+      {
+        "__id__": 186
+      },
+      {
+        "__id__": 188
+      }
+    ],
+    "_prefab": {
+      "__id__": 190
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -243.29,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 183
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 185
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 580,
+      "height": 196
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "eeyImfjeFLsaRHbwCaP9Xk"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 183
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 187
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e29030d6-bc3a-45a2-a900-482db0e4cde7@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_type": 1,
+    "_fillType": 0,
+    "_sizeMode": 2,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_useGrayscale": false,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "84l3ud92NC0a/uokY4Aef3"
+  },
+  {
+    "__type__": "cc.Button",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 183
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 189
+    },
+    "clickEvents": [],
+    "_interactable": true,
+    "_transition": 0,
+    "_normalColor": {
+      "__type__": "cc.Color",
+      "r": 214,
+      "g": 214,
+      "b": 214,
+      "a": 255
+    },
+    "_hoverColor": {
+      "__type__": "cc.Color",
+      "r": 211,
+      "g": 211,
+      "b": 211,
+      "a": 255
+    },
+    "_pressedColor": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_disabledColor": {
+      "__type__": "cc.Color",
+      "r": 124,
+      "g": 124,
+      "b": 124,
+      "a": 255
+    },
+    "_normalSprite": {
+      "__uuid__": "e29030d6-bc3a-45a2-a900-482db0e4cde7@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_hoverSprite": {
+      "__uuid__": "20835ba4-6145-4fbc-a58a-051ce700aa3e@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_pressedSprite": {
+      "__uuid__": "544e49d6-3f05-4fa8-9a9e-091f98fc2ce8@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_disabledSprite": {
+      "__uuid__": "951249e0-9f16-456d-8b85-a6ca954da16b@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_duration": 0.1,
+    "_zoomScale": 1.2,
+    "_target": {
+      "__id__": 183
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "aesOT8V+dP8K92wjo0MBw8"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "71xVJNVmNLzrrBfhYdZFpi",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 170
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 192
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "438W1ftb9FU4KLS9NVrB/g"
+  },
+  {
+    "__type__": "c7f4b263JlOc4oEeTIc6gDN",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 170
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 194
+    },
+    "btn_restart": {
+      "__id__": 183
+    },
+    "lab_scores": {
+      "__id__": 177
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "ebUii2j0lDYp0Zoou4s8E5"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 170
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 196
+    },
+    "_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": 800,
+    "_originalHeight": 1000,
+    "_alignMode": 2,
+    "_lockFlags": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "96D0DylUtOEINyyyLRdDXv"
+  },
+  {
+    "__type__": "cc.BlockInputEvents",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 170
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 198
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "89kXODyN1HMLbdmf102q25"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 170
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 200
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "cb0cfad0-5580-4770-8cd6-820c7d5d75e8@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": "81ixrx76JF1rnIP3aZET5m"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "e1zVK7cLRExbhpKEa5GX8S",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 203
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "c2XUVTMcRPw55Arsq8eLVt"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 205
+    },
+    "_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": "c6j2cj6QVG0r9pwpBrt93N"
+  },
+  {
+    "__type__": "ffdb8hEBgVGyJNNwM/q0oI3",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 207
+    },
+    "sfList": [
+      {
+        "__uuid__": "273ccc74-229f-4b1a-932c-f98fa1ffca83@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "5ab4c80d-cd4b-4e5f-b623-cb80c226235c@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "66d29701-3853-4af5-8af2-d3d38e33265f@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "08957fe1-1c2d-48fb-a74f-7c01ebb8e824@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "249c2bae-4f4a-4128-af47-bd95030828aa@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      null,
+      null,
+      null,
+      {
+        "__uuid__": "890e8eed-a14f-48a9-89a1-c850cd416511@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "a97f4e88-fb14-42b1-b0d7-d68b3359219a@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "b275b3ef-78b4-4701-83e9-ca1e33092a97@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "0336ef5c-0a13-41d5-bdd7-8582b2459c84@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "d8081425-9fa6-4bc3-9fa3-41616b2850a6@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      }
+    ],
+    "sfBuffList": [
+      {
+        "__uuid__": "2fac7003-fcc4-4d62-b627-6730c2648933@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "e4d8594c-d8c0-47b6-8afe-58eda796dcc1@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      },
+      {
+        "__uuid__": "a4557bfa-8be4-4944-a707-12fa8fd0782c@f9941",
+        "__expectedType__": "cc.SpriteFrame"
+      }
+    ],
+    "collider": {
+      "__id__": 47
+    },
+    "car": {
+      "__id__": 11
+    },
+    "content": {
+      "__id__": 10
+    },
+    "prefab_item": {
+      "__uuid__": "9f7b5778-7d8f-475e-a8a9-e4594405f769",
+      "__expectedType__": "cc.Prefab"
+    },
+    "results_view": {
+      "__id__": 170
+    },
+    "lab_scores": {
+      "__id__": 83
+    },
+    "bf_show": {
+      "__id__": 80
+    },
+    "game_pool_manager": {
+      "__id__": 53
+    },
+    "touch_node": {
+      "__id__": 94
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "4eP4WLfKtI+K7DokWit28R"
+  },
+  {
+    "__type__": "cc.Mask",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 209
+    },
+    "_type": 0,
+    "_inverted": false,
+    "_segments": 64,
+    "_alphaThreshold": 0.1,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "49wzyXhrRPEJdCWVHbinN+"
+  },
+  {
+    "__type__": "cc.Graphics",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 211
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_lineWidth": 1,
+    "_strokeColor": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_lineJoin": 2,
+    "_lineCap": 0,
+    "_fillColor": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 0
+    },
+    "_miterLimit": 10,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "ddAWOXnaVIcoWIyN/N43c3"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "c6iVTZpLNGN4iKLuInGUVp",
+    "instance": null,
+    "targetOverrides": null
+  }
+]

+ 13 - 0
assets/resources/prefabs/game.prefab.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "81d8d84b-c1cd-4751-9501-daddad4008c9",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "game"
+  }
+}

+ 242 - 0
assets/resources/prefabs/run_level_item.prefab

@@ -0,0 +1,242 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "run_level_item",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "persistent": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "run_level_item",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 2
+      },
+      {
+        "__id__": 4
+      },
+      {
+        "__id__": 6
+      },
+      {
+        "__id__": 8
+      },
+      {
+        "__id__": 10
+      }
+    ],
+    "_prefab": {
+      "__id__": 12
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -968.313,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 3
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1000
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "7dtls23YFFsalwkJJUoxJZ"
+  },
+  {
+    "__type__": "cc.RigidBody2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 5
+    },
+    "enabledContactListener": true,
+    "bullet": false,
+    "awakeOnLoad": true,
+    "_group": 1,
+    "_type": 1,
+    "_allowSleep": true,
+    "_gravityScale": 1,
+    "_linearDamping": 0,
+    "_angularDamping": 0,
+    "_linearVelocity": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_angularVelocity": 0,
+    "_fixedRotation": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "cavjz+6aFDyoT3uLVuPYhN"
+  },
+  {
+    "__type__": "cc.BoxCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 7
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": true,
+    "_friction": 0.2,
+    "_restitution": 0,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 500
+    },
+    "_size": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1000
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "0c6p0VGuFE/YJr6ggvUYtf"
+  },
+  {
+    "__type__": "67cac6z+b1Jp6kRwvZNzxxI",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 9
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "f23CZyN5NNj7voNQvv8/D6"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 11
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "cb0cfad0-5580-4770-8cd6-820c7d5d75e8@f9941",
+      "__expectedType__": "cc.SpriteFrame"
+    },
+    "_type": 2,
+    "_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": "0ckkhvgENK8IdZZQarx9XK"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "92drsspbZAoIaVBCfFGdZP",
+    "instance": null,
+    "targetOverrides": null
+  }
+]

+ 13 - 0
assets/resources/prefabs/run_level_item.prefab.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "9f7b5778-7d8f-475e-a8a9-e4594405f769",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "run_level_item"
+  }
+}

+ 443 - 0
assets/resources/prefabs/wall.prefab

@@ -0,0 +1,443 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "wall",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "persistent": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "wall",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 12
+      },
+      {
+        "__id__": 14
+      },
+      {
+        "__id__": 16
+      },
+      {
+        "__id__": 18
+      },
+      {
+        "__id__": 20
+      }
+    ],
+    "_prefab": {
+      "__id__": 22
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Node",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 5
+      },
+      {
+        "__id__": 7
+      },
+      {
+        "__id__": 9
+      }
+    ],
+    "_prefab": {
+      "__id__": 11
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -139.5,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 4
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 100
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "31GTcMEpJGCLy3fVh98bdN"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 6
+    },
+    "_alignFlags": 4,
+    "_target": null,
+    "_left": 0,
+    "_right": 0,
+    "_top": 0,
+    "_bottom": -50,
+    "_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": "75tv8dH7xLBZP5JieyMseS"
+  },
+  {
+    "__type__": "cc.RigidBody2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 8
+    },
+    "enabledContactListener": false,
+    "bullet": false,
+    "awakeOnLoad": true,
+    "_group": 1,
+    "_type": 0,
+    "_allowSleep": true,
+    "_gravityScale": 1,
+    "_linearDamping": 0,
+    "_angularDamping": 0,
+    "_linearVelocity": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_angularVelocity": 0,
+    "_fixedRotation": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "edZ9xIsJtG4qDEahpWYxiL"
+  },
+  {
+    "__type__": "cc.CircleCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 10
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": false,
+    "_friction": 0.2,
+    "_restitution": 0.2,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_radius": 20,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "92zEVsIEFOyKWNvov1vEB7"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "65a948LhRKL5Ie71B5brMr",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 13
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 22,
+      "height": 279
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "6aGKZ14kxOxrODKnuc/NZt"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 15
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "9971cc0b-1350-43dc-b4a1-3f736f888dfc@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": "d86o+t7UtLP4y7Jh3EZcNS"
+  },
+  {
+    "__type__": "cc.RigidBody2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": false,
+    "__prefab": {
+      "__id__": 17
+    },
+    "enabledContactListener": false,
+    "bullet": false,
+    "awakeOnLoad": true,
+    "_group": 1,
+    "_type": 0,
+    "_allowSleep": true,
+    "_gravityScale": 1,
+    "_linearDamping": 0,
+    "_angularDamping": 0,
+    "_linearVelocity": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_angularVelocity": 0,
+    "_fixedRotation": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "3eFwrn4JRGi6CzivGX3OCh"
+  },
+  {
+    "__type__": "2b3f79lH+tBRZby/BNtk6Dt",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 19
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "c54xLYVq9IObsUEzV4w9as"
+  },
+  {
+    "__type__": "cc.BoxCollider2D",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 21
+    },
+    "tag": 0,
+    "_group": 1,
+    "_density": 1,
+    "_sensor": true,
+    "_friction": 0,
+    "_restitution": 0,
+    "_offset": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_size": {
+      "__type__": "cc.Size",
+      "width": 20,
+      "height": 279
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "170sD6Zk9JTr+8AppFF+Ys"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "33GjOqRqBPSrBwoX6omH8H",
+    "instance": null,
+    "targetOverrides": null
+  }
+]

+ 13 - 0
assets/resources/prefabs/wall.prefab.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "0a6bbb5a-807f-4b95-97a2-d7e812e40fe9",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "wall"
+  }
+}

+ 9 - 0
assets/resources/ui.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "53c78f8c-426d-41c4-b7d7-6cc6be3663bb",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 5493 - 0
assets/resources/ui/home.prefab

@@ -0,0 +1,5493 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "home",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "persistent": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "home",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      },
+      {
+        "__id__": 8
+      },
+      {
+        "__id__": 92
+      },
+      {
+        "__id__": 106
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 234
+      },
+      {
+        "__id__": 236
+      },
+      {
+        "__id__": 238
+      }
+    ],
+    "_prefab": {
+      "__id__": 240
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "bg",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 5
+      }
+    ],
+    "_prefab": {
+      "__id__": 7
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 4
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "909+YpasxOVZEWeyht6P/8"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 6
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "4d52b6b8-f0c0-4856-8b1a-ee5124209205@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": "85oBWo/51Im6gFEH4XTZ8r"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "a49MOLvMZN55WDVAUiuDP3",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "top_node",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 9
+      },
+      {
+        "__id__": 41
+      },
+      {
+        "__id__": 65
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 83
+      },
+      {
+        "__id__": 85
+      },
+      {
+        "__id__": 87
+      },
+      {
+        "__id__": 89
+      }
+    ],
+    "_prefab": {
+      "__id__": 91
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 405,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_top",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 8
+    },
+    "_children": [
+      {
+        "__id__": 10
+      },
+      {
+        "__id__": 16
+      },
+      {
+        "__id__": 22
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 34
+      },
+      {
+        "__id__": 36
+      },
+      {
+        "__id__": 38
+      }
+    ],
+    "_prefab": {
+      "__id__": 40
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 427.5,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "btn_gong_gao",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 9
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 11
+      },
+      {
+        "__id__": 13
+      }
+    ],
+    "_prefab": {
+      "__id__": 15
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -444.114,
+      "y": 41.812,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 10
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 12
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 139,
+      "height": 139
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "4d63TxzndFepD0/OwOAS3k"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 10
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 14
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "7d524461-2100-4a1f-9346-91d72667eca3@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": "17ZMAFOmxMOoi29ikmuXnm"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "caCOKt3qRDfKmw9nFYNbLe",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "btn_setting",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 9
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 17
+      },
+      {
+        "__id__": 19
+      }
+    ],
+    "_prefab": {
+      "__id__": 21
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 444.114,
+      "y": 41.812,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 16
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 18
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 139,
+      "height": 139
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "e9KzIOQnhGSLGh/i5IOXTN"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 16
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 20
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "7aea3e92-598c-450b-b8cf-2c27afaf24e8@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": "f0DaASAUJLlJzAryGQGNTX"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "077D+MgxdATZBrCJHmT2SB",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_head_di",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 9
+    },
+    "_children": [
+      {
+        "__id__": 23
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 29
+      },
+      {
+        "__id__": 31
+      }
+    ],
+    "_prefab": {
+      "__id__": 33
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_head",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 22
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 24
+      },
+      {
+        "__id__": 26
+      }
+    ],
+    "_prefab": {
+      "__id__": 28
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 23
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 25
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 224,
+      "height": 224
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "657bJO4vtNlobIMLyb9bcS"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 23
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 27
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "e1a9bdc5-d395-425d-ac86-6389b9fc4c65@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": "90dysBs+NOSqCwsg24MevU"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "6cG2ZP/QhEvpagDiqAwGvH",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 22
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 30
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 632,
+      "height": 225
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "c1Q0uJEIFFeL4mdz1vFvvp"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 22
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 32
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "0299ade5-ebd9-4046-91e8-0631e5161c6c@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": "c1r98PATlGFq2nlpvGBZO1"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "345tcy/9BCKZLaIBHnnmPp",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 9
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 35
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 255
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "5cO57zrqhHL7H2xe5BEVsG"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 9
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 37
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "d5f2d3f3-f45b-467e-bbc5-2eb488a5b5b3@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": "09q13uONNLG7k+s5hkQn15"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 9
+    },
+    "_enabled": false,
+    "__prefab": {
+      "__id__": 39
+    },
+    "_alignFlags": 1,
+    "_target": null,
+    "_left": 0,
+    "_right": 0,
+    "_top": -100,
+    "_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": "66JH7d1ppMq5kzscG9fd7G"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "25Ta7pIa1LyJBGYIBhFB4P",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "car_lib_info",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 8
+    },
+    "_children": [
+      {
+        "__id__": 42
+      },
+      {
+        "__id__": 48
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 60
+      },
+      {
+        "__id__": 62
+      }
+    ],
+    "_prefab": {
+      "__id__": 64
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 200,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "btn_car_lib",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 41
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 43
+      },
+      {
+        "__id__": 45
+      }
+    ],
+    "_prefab": {
+      "__id__": 47
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -184.494,
+      "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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 42
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 44
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 66,
+      "height": 63
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "faIA6bzgBOmogjumyRLTKH"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 42
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 46
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "543df3e8-73a3-4dfe-8c53-229b6bac96a8@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": "50eFGeB5hJxZkCpFOK7eB0"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "f8Sc0xYu5KzKC2wi/NFkhX",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_car_pai",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 41
+    },
+    "_children": [
+      {
+        "__id__": 49
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 55
+      },
+      {
+        "__id__": 57
+      }
+    ],
+    "_prefab": {
+      "__id__": 59
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 98.012,
+      "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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Label",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 48
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 50
+      },
+      {
+        "__id__": 52
+      }
+    ],
+    "_prefab": {
+      "__id__": 54
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 49
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 51
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 180.1171875,
+      "height": 50.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "14d6qwpLlNuKx2eB8IeIe5"
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 49
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 53
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_string": "翼D90123",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 40,
+    "_fontSize": 40,
+    "_fontFamily": "Arial",
+    "_lineHeight": 40,
+    "_overflow": 0,
+    "_enableWrapText": true,
+    "_font": null,
+    "_isSystemFontUsed": true,
+    "_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": 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": "f4JB99+JRFe6Aw7nCzEcv3"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "f4PnMW6c1CFJbVuH1jgzx7",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 48
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 56
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 382,
+      "height": 85
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "54Zs245PpCk4QcJO1ZBXz9"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 48
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 58
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "d8c464bb-c121-43c5-98a3-acc23c57d9d6@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": "f0npstdElOOoFD37kdigWS"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "90kttR8DVCp7UOnNlxZRnw",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 41
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 61
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 200
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "b6BWOYrpNEnZm3/b2Ra8dg"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 41
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 63
+    },
+    "_alignFlags": 40,
+    "_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": 0,
+    "_alignMode": 2,
+    "_lockFlags": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "60r/MLfbdHg6XsRpEoiW8t"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "e5LXa6EANKUp2bR1nppdN8",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "guang_bo",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 8
+    },
+    "_children": [
+      {
+        "__id__": 66
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 78
+      },
+      {
+        "__id__": 80
+      }
+    ],
+    "_prefab": {
+      "__id__": 82
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 50,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_gong_gao",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 65
+    },
+    "_children": [
+      {
+        "__id__": 67
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 73
+      },
+      {
+        "__id__": 75
+      }
+    ],
+    "_prefab": {
+      "__id__": 77
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Label",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 66
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 68
+      },
+      {
+        "__id__": 70
+      }
+    ],
+    "_prefab": {
+      "__id__": 72
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 67
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 69
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 210,
+      "height": 50.4
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "aeZCckeCxB7qKUNPAytSEG"
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 67
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 71
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_string": "恭喜广州吴彦祖",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 30,
+    "_fontSize": 30,
+    "_fontFamily": "Arial",
+    "_lineHeight": 40,
+    "_overflow": 0,
+    "_enableWrapText": true,
+    "_font": null,
+    "_isSystemFontUsed": true,
+    "_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": 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": "d9k7QHIO1OwahLk/8vKPxT"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "82+bFg5jVBc7N4JSTtvwdF",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 66
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 74
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1079,
+      "height": 58
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "6eDvgkJwRH3pBufh8JvsUR"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 66
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 76
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "04062ca5-8e94-4619-896c-ea14dd4298d8@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": "b4CyNbWT9PcJKmC/hPjAEI"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "berv92Oi1IOpZBwOPzAuea",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 65
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 79
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 100
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "8fEGq0RTBMSZ67dbh8S4Cp"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 65
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 81
+    },
+    "_alignFlags": 40,
+    "_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": 0,
+    "_alignMode": 2,
+    "_lockFlags": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "8fCqdrlUBJAqPlqj38qxTC"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "ec6E69WVpAo6KXmSjIo3Rm",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 8
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 84
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 555
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "81iGMVZZdNj7FacaVP9r98"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 8
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 86
+    },
+    "_alignFlags": 41,
+    "_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": 0,
+    "_alignMode": 2,
+    "_lockFlags": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "7bbVmCyxJJ2KgZQ/OKbXHy"
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 8
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 88
+    },
+    "_resizeMode": 1,
+    "_layoutType": 2,
+    "_cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_startAxis": 0,
+    "_paddingLeft": 0,
+    "_paddingRight": 0,
+    "_paddingTop": 0,
+    "_paddingBottom": 0,
+    "_spacingX": 0,
+    "_spacingY": 0,
+    "_verticalDirection": 1,
+    "_horizontalDirection": 0,
+    "_constraint": 0,
+    "_constraintNum": 2,
+    "_affectedByScale": false,
+    "_isAlign": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "85oIqBihtB4pWx1dKYAIEx"
+  },
+  {
+    "__type__": "2ed4bEJFqRHG6kEqvircEn3",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 8
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 90
+    },
+    "btn_gong_gao": {
+      "__id__": 10
+    },
+    "btn_setting": {
+      "__id__": 16
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "dcOA2NwZtNjp8zV4Yemla3"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "41xysH80NLrbn/NTWOh92i",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "car",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 93
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 99
+      },
+      {
+        "__id__": 101
+      },
+      {
+        "__id__": 103
+      }
+    ],
+    "_prefab": {
+      "__id__": 105
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "spr_car",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 92
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 94
+      },
+      {
+        "__id__": 96
+      }
+    ],
+    "_prefab": {
+      "__id__": 98
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 93
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 95
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 634,
+      "height": 632
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "e4S8Y69k1N1KutqItUSs7O"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 93
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 97
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "5eb1145a-7c33-447f-bc30-83fe23f76e80@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": "77Z2MZ2RNBxKMwWursNJWQ"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "2cYDSuMQZAj5rPVFMB1f3+",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 92
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 100
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 100
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "80gg9nrXtMUomAluNgOx7C"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 92
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 102
+    },
+    "_alignFlags": 18,
+    "_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": "52MQ5F1q5Gyb+PwBS7TpNO"
+  },
+  {
+    "__type__": "bac6fgaeoJLBo0Jg/s3MYQc",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 92
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 104
+    },
+    "spr_car": {
+      "__id__": 93
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "dd/9yld7tPZIfMxx6eCxJR"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "d1wOaJltRAeqygVJJgap/f",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "bottom_node",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 107
+      },
+      {
+        "__id__": 189
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 225
+      },
+      {
+        "__id__": 227
+      },
+      {
+        "__id__": 229
+      },
+      {
+        "__id__": 231
+      }
+    ],
+    "_prefab": {
+      "__id__": 233
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -960,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_bottom_rank",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 106
+    },
+    "_children": [
+      {
+        "__id__": 108
+      },
+      {
+        "__id__": 114
+      },
+      {
+        "__id__": 132
+      },
+      {
+        "__id__": 150
+      },
+      {
+        "__id__": 168
+      },
+      {
+        "__id__": 174
+      },
+      {
+        "__id__": 180
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 186
+      }
+    ],
+    "_prefab": {
+      "__id__": 188
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "bg",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 107
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 109
+      },
+      {
+        "__id__": 111
+      }
+    ],
+    "_prefab": {
+      "__id__": 113
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 65.59,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 108
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 110
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 130
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "876dTg4Z5H77oO4vSJAUfa"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 108
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 112
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "900e9f90-d54a-40bc-b06e-ff90b447480d@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": "8bOeuJMQVGEaQliLXoDSq2"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "a96NIwM/FEb4ZKATxpVv4l",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "rank_2",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 107
+    },
+    "_children": [
+      {
+        "__id__": 115
+      },
+      {
+        "__id__": 121
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 127
+      },
+      {
+        "__id__": 129
+      }
+    ],
+    "_prefab": {
+      "__id__": 131
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -215.163,
+      "y": 127.748,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "rank_2",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 114
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 116
+      },
+      {
+        "__id__": 118
+      }
+    ],
+    "_prefab": {
+      "__id__": 120
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -38.251,
+      "y": 54.391,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 115
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 117
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 71,
+      "height": 85
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "9bhurVT/9G6olHy6E1W5ra"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 115
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 119
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "d90f78a0-fcdf-4f75-b473-5d6d703da20b@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": "23mMz9RYFLuanuDfTiyE93"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "e9ByC1YqlKVIqvlgXj/QEO",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "car",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 114
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 122
+      },
+      {
+        "__id__": 124
+      }
+    ],
+    "_prefab": {
+      "__id__": 126
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -9.866,
+      "y": 38.536,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 0.15,
+      "y": 0.15,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 121
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 123
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 634,
+      "height": 632
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "4aM82VJqxKpLlVub5T2mNt"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 121
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 125
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "5eb1145a-7c33-447f-bc30-83fe23f76e80@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": "35ramd1pFCPbZ6bZ1fA5pc"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "3eiwhSYq5G7anrMy5hGOJb",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 114
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 128
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 158,
+      "height": 204
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "2c3YsNxwBIobLNMR4kmuMm"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 114
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 130
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "4360e936-0a00-41a0-833c-a92d9b639cd2@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": "14KhKSyRZPMa77899dfDCM"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "526rKwZYxAb7e10ZUcUCAY",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "rank_1",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 107
+    },
+    "_children": [
+      {
+        "__id__": 133
+      },
+      {
+        "__id__": 139
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 145
+      },
+      {
+        "__id__": 147
+      }
+    ],
+    "_prefab": {
+      "__id__": 149
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 127.748,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "rank_1",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 132
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 134
+      },
+      {
+        "__id__": 136
+      }
+    ],
+    "_prefab": {
+      "__id__": 138
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -43.033,
+      "y": 62.158,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 133
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 135
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 79,
+      "height": 95
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "07e27LspdPPpiBoUk+Snxp"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 133
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 137
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "c5ac4db8-73d4-43ad-8282-66ca33ec4155@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": "1eUJ1wcA5PeJUIP/vrspuT"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "0ew9N4KOtCj5C/i3M5QWld",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "car",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 132
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 140
+      },
+      {
+        "__id__": 142
+      }
+    ],
+    "_prefab": {
+      "__id__": 144
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -9.866,
+      "y": 38.536,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 0.15,
+      "y": 0.15,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 139
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 141
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 634,
+      "height": 632
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "23g4MEjHpDlZRriu/G4cry"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 139
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 143
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "5eb1145a-7c33-447f-bc30-83fe23f76e80@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": "e8NLSAsMRKwKSM27ouqV+5"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "bb7yrpySdPdI6hNzFoOxIq",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 132
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 146
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 178,
+      "height": 224
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "42X8XYg/RKz6ICYiX5kHRs"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 132
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 148
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "4360e936-0a00-41a0-833c-a92d9b639cd2@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": "9cB/V85KlKtazdY0Fo1MaW"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "86ycPXIo5F166u1a6t0awd",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "rank_3",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 107
+    },
+    "_children": [
+      {
+        "__id__": 151
+      },
+      {
+        "__id__": 157
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 163
+      },
+      {
+        "__id__": 165
+      }
+    ],
+    "_prefab": {
+      "__id__": 167
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 215.163,
+      "y": 127.748,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "rank_3",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 150
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 152
+      },
+      {
+        "__id__": 154
+      }
+    ],
+    "_prefab": {
+      "__id__": 156
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -43.033,
+      "y": 57.377,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 151
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 153
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 71,
+      "height": 85
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "f4v9UEOOdD9LLu7P1ljA+k"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 151
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 155
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "36c050f7-0f25-4a55-8e41-bae4bcb81303@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": "6fj8ZsqHpJ47HikoKP7X94"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "62IHUdTuxEkq08AZkgwrwB",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "car",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 150
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 158
+      },
+      {
+        "__id__": 160
+      }
+    ],
+    "_prefab": {
+      "__id__": 162
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -9.866,
+      "y": 38.536,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 0.15,
+      "y": 0.15,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 157
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 159
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 634,
+      "height": 632
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "b2PY3Bt6NJy4aYhJMfKDKL"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 157
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 161
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "5eb1145a-7c33-447f-bc30-83fe23f76e80@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": "e9XxYcgLlJqpHnYx0H8saP"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "59RqWDbA1Aoa6YiQcOroDj",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 150
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 164
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 158,
+      "height": 204
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "24UDtsZ79PVrgNWzeEqfx5"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 150
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 166
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "4360e936-0a00-41a0-833c-a92d9b639cd2@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": "69tbRg2PJCoa4RjAkQLM5q"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "2cd4vgj+tC2L3tRk/Wt14E",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_quanguo",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 107
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 169
+      },
+      {
+        "__id__": 171
+      }
+    ],
+    "_prefab": {
+      "__id__": 173
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -420.762,
+      "y": 65.59,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 168
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 170
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 119,
+      "height": 28
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "5cNKOL4uZGCoEHssMi+aYl"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 168
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 172
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "a7428aa7-5e26-453f-861f-95cf63cc6023@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": "64TAR3KDVKNoE3vaH/zMg4"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "14zf8yg7ZGu6tSyDldBtQU",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_zhongguo",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 107
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 175
+      },
+      {
+        "__id__": 177
+      }
+    ],
+    "_prefab": {
+      "__id__": 179
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 430.325,
+      "y": 65.59,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 174
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 176
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 98,
+      "height": 28
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "cejqK1WXlLFan6ZuW1Et1C"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 174
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 178
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "12d4101c-a842-41c5-9cbb-836a9fbc2bd2@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": "1cYaEkLZJDQog6eF8SzLiD"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "11TKQdLZJHubhl4Jr0HziK",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_update_rank",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 107
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 181
+      },
+      {
+        "__id__": 183
+      }
+    ],
+    "_prefab": {
+      "__id__": 185
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -415.981,
+      "y": 262.977,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 180
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 182
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 181,
+      "height": 29
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "85DUztOT9IraQMPu6rgyxN"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 180
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 184
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "54e88195-890f-4994-b368-816d696ecddd@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": "13cTFsW4pNrbH8VMhHBf8s"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "ff6sGFMgdDYI3tMuW4O/S1",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 107
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 187
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 290
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "804INlCrxHYqJreBxQ26Ek"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "38RvPf9F9FiaL4hr1JyCEK",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "start_and_score",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 106
+    },
+    "_children": [
+      {
+        "__id__": 190
+      },
+      {
+        "__id__": 196
+      },
+      {
+        "__id__": 202
+      },
+      {
+        "__id__": 208
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 220
+      },
+      {
+        "__id__": 222
+      }
+    ],
+    "_prefab": {
+      "__id__": 224
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 490,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_score",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 189
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 191
+      },
+      {
+        "__id__": 193
+      }
+    ],
+    "_prefab": {
+      "__id__": 195
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -233.472,
+      "y": 129.098,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 190
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 192
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 71,
+      "height": 35
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "d5Ygp/c0dHNrMXtOq93Gw4"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 190
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 194
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "56e7eccf-c45a-42da-9ee6-e02e8e222976@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": "04OVORXFhIJKXZF6fMG7xo"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "7a4YIgMxFDALeaYM4Hs0XZ",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Label",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 189
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 197
+      },
+      {
+        "__id__": 199
+      }
+    ],
+    "_prefab": {
+      "__id__": 201
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 33.476,
+      "y": 163.864,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 196
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 198
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 136.72,
+      "height": 30
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "26YrRt2hFN/baWysv1xHu3"
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 196
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 200
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_string": "123",
+    "_horizontalAlign": 1,
+    "_verticalAlign": 1,
+    "_actualFontSize": 25,
+    "_fontSize": 25,
+    "_fontFamily": "Arial",
+    "_lineHeight": 30,
+    "_overflow": 0,
+    "_enableWrapText": true,
+    "_font": {
+      "__uuid__": "45a05140-0930-4611-bb56-3f5781a7144b",
+      "__expectedType__": "cc.BitmapFont"
+    },
+    "_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": "d9xinT7thFr61MYVleQmEb"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "faM5QRqIxGL6t+plo98tG+",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "btn_start_game",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 189
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 203
+      },
+      {
+        "__id__": 205
+      }
+    ],
+    "_prefab": {
+      "__id__": 207
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 202
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 204
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 525,
+      "height": 170
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "adj/+CZG9ODqspexGXQG0m"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 202
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 206
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "36431a06-97e0-4494-b3e0-4addca1558d2@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": "62QQU8COdOXaOu2XU11sTG"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "53G0/VlBlPl5I6zLIxlnb8",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_wuxiancishu",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 189
+    },
+    "_children": [
+      {
+        "__id__": 209
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 215
+      },
+      {
+        "__id__": 217
+      }
+    ],
+    "_prefab": {
+      "__id__": 219
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -124.316,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_loudou",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 208
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 210
+      },
+      {
+        "__id__": 212
+      }
+    ],
+    "_prefab": {
+      "__id__": 214
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": -172.13,
+      "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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 209
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 211
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 45,
+      "height": 54
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "a44P5s8rtP6p+oBbRr7ZrP"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 209
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 213
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "1e804754-2f94-41ff-836c-122e67fa20ff@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": "24K8BC99NB2bfSy1tLlbnS"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "4b65KWZK5JCox8/2BYw0nI",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 208
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 216
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1062,
+      "height": 85
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "6ePseJ27JMO5g8XXZwEJD+"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 208
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 218
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "55bedd04-0ef6-4725-b16f-077a1d6b7e6b@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": "74789uJuFHQIfFBUGRBaBg"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "e2HINZ349DEYTe2OLIdRV7",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 189
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 221
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 400
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "efHtC2aIhKX4ikgQ+TjBfd"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 189
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 223
+    },
+    "_alignFlags": 40,
+    "_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": 0,
+    "_alignMode": 2,
+    "_lockFlags": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "74/ykWlY1LdKgwYEcO7oVx"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "9cAHrcr+lDp4qkosdzuAvL",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 106
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 226
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 690
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "2d4Ic1sQtFjYNzCaf7yIMa"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 106
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 228
+    },
+    "_alignFlags": 44,
+    "_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": 0,
+    "_alignMode": 2,
+    "_lockFlags": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "7cNsvEdbVCJZpjza1Ix3wC"
+  },
+  {
+    "__type__": "cc.Layout",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 106
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 230
+    },
+    "_resizeMode": 1,
+    "_layoutType": 2,
+    "_cellSize": {
+      "__type__": "cc.Size",
+      "width": 40,
+      "height": 40
+    },
+    "_startAxis": 0,
+    "_paddingLeft": 0,
+    "_paddingRight": 0,
+    "_paddingTop": 0,
+    "_paddingBottom": 0,
+    "_spacingX": 0,
+    "_spacingY": 0,
+    "_verticalDirection": 0,
+    "_horizontalDirection": 0,
+    "_constraint": 0,
+    "_constraintNum": 2,
+    "_affectedByScale": false,
+    "_isAlign": false,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "24GHNN3uBH5KWo2WMTL1/X"
+  },
+  {
+    "__type__": "1501cNgZxBJB7VS/xLQ5yWt",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 106
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 232
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "9aEKLa9ylDCYMxfl5zEa1e"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "2fba9TS+FKz4dTSA0kXzEK",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 235
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "44hiTGsz1BQon4vv0SbpQ6"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 237
+    },
+    "_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": "ffjxyTcfRNuorlTRoUS3TH"
+  },
+  {
+    "__type__": "952adX83qJJxK4hHXF0iHlC",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 239
+    },
+    "home_car": {
+      "__id__": 92
+    },
+    "top": {
+      "__id__": 8
+    },
+    "bottom": {
+      "__id__": 106
+    },
+    "btn_start_game": {
+      "__id__": 202
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "25ZmiV8q5A477IGrbREW/4"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "90ml9lFV1GWauBNkedUjV8",
+    "instance": null,
+    "targetOverrides": null
+  }
+]

+ 13 - 0
assets/resources/ui/home.prefab.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "88afc8d4-0e0e-4dd5-9373-da1183aae8d8",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "home"
+  }
+}

+ 580 - 0
assets/resources/ui/setting.prefab

@@ -0,0 +1,580 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "setting",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "persistent": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "setting",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      },
+      {
+        "__id__": 8
+      },
+      {
+        "__id__": 14
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 20
+      },
+      {
+        "__id__": 22
+      },
+      {
+        "__id__": 24
+      }
+    ],
+    "_prefab": {
+      "__id__": 26
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "public_bg",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 5
+      }
+    ],
+    "_prefab": {
+      "__id__": 7
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 4
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "bc9dxDVG9GrrGe8ltRW4Da"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 6
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "433b4378-f731-459b-be68-93cd8b0899a6@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": "1aksAn/FRHrb5oFmsRO7UV"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "22DIVvAfpG3oiHJn+mSuiW",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "img_bg",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 9
+      },
+      {
+        "__id__": 11
+      }
+    ],
+    "_prefab": {
+      "__id__": 13
+    },
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 8
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 10
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 907,
+      "height": 1162
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "23PY20/7xIfKPGY/tkUjtZ"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 8
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 12
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "35187db7-871c-409c-af6e-cec660642c10@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": "c8XA0Ic1tBaI2gl+9YJlP3"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "f8M9g7WPRC2oFqy9FhEvXv",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "btn_close",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 15
+      },
+      {
+        "__id__": 17
+      }
+    ],
+    "_prefab": {
+      "__id__": 19
+    },
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": -710.691,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 14
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 16
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 99,
+      "height": 101
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "dd6+h15YZEhYHyV4OgWIjr"
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 14
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 18
+    },
+    "_customMaterial": null,
+    "_srcBlendFactor": 2,
+    "_dstBlendFactor": 4,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_spriteFrame": {
+      "__uuid__": "da183f68-0bf6-4ff1-98b2-e3ead70f6b96@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": "69HK3J8zNEkIWBvFmvyB4s"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "74+KTIEcFPQJb5u/OUS/Ju",
+    "instance": null,
+    "targetOverrides": null,
+    "nestedPrefabInstanceRoots": null
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 21
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "dbUYxVQc5DOZTZXdA7xsJE"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 23
+    },
+    "_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": "ca6NNo7wxCUKKrssHSjxc6"
+  },
+  {
+    "__type__": "4aeeeNZmcdPJJWgabz2/IXI",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 25
+    },
+    "btn_close": {
+      "__id__": 14
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "1feJVVaStGqIJkeyjDtzA8"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__id__": 0
+    },
+    "fileId": "9dTghICxBKJq4T5oNoCOpM",
+    "instance": null,
+    "targetOverrides": null
+  }
+]

+ 13 - 0
assets/resources/ui/setting.prefab.meta

@@ -0,0 +1,13 @@
+{
+  "ver": "1.1.50",
+  "importer": "prefab",
+  "imported": true,
+  "uuid": "a9a8e295-208d-4275-a69c-86e49d4ad0f0",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {
+    "syncNodeName": "setting"
+  }
+}

+ 9 - 0
assets/scene.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "62ca5684-8c39-4fcb-8566-63a5c3b021ff",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 1114 - 0
assets/scene/main.scene

@@ -0,0 +1,1114 @@
+[
+  {
+    "__type__": "cc.SceneAsset",
+    "_name": "main",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "scene": {
+      "__id__": 1
+    }
+  },
+  {
+    "__type__": "cc.Scene",
+    "_name": "main",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      }
+    ],
+    "_active": true,
+    "_components": [],
+    "_prefab": {
+      "__id__": 30
+    },
+    "_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
+    },
+    "autoReleaseAssets": false,
+    "_globals": {
+      "__id__": 31
+    },
+    "_id": "5cad85ad-e393-4bc6-aedf-858b69ac47e3"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Canvas",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 6
+      },
+      {
+        "__id__": 8
+      },
+      {
+        "__id__": 13
+      },
+      {
+        "__id__": 18
+      },
+      {
+        "__id__": 22
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 26
+      },
+      {
+        "__id__": 27
+      },
+      {
+        "__id__": 28
+      },
+      {
+        "__id__": 29
+      }
+    ],
+    "_prefab": null,
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 540,
+      "y": 960,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": "beI88Z2HpFELqR4T5EMHpg"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "home_node",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 4
+      },
+      {
+        "__id__": 5
+      }
+    ],
+    "_prefab": null,
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": "d0uW3M3C5E2q8vYb/yizdD"
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": "54+7JMEHBKG6rZKTNV/xGd"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_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": "33gfFNpiVPA651W2tcULaJ"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Camera",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 7
+      }
+    ],
+    "_prefab": null,
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 1000
+    },
+    "_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": "ebFwiq8gBFaYpqYbdoDODe"
+  },
+  {
+    "__type__": "cc.Camera",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 6
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_projection": 0,
+    "_priority": 0,
+    "_fov": 45,
+    "_fovAxis": 0,
+    "_orthoHeight": 960,
+    "_near": 0,
+    "_far": 1000,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_depth": 1,
+    "_stencil": 0,
+    "_clearFlags": 7,
+    "_rect": {
+      "__type__": "cc.Rect",
+      "x": 0,
+      "y": 0,
+      "width": 1,
+      "height": 1
+    },
+    "_aperture": 19,
+    "_shutter": 7,
+    "_iso": 0,
+    "_screenScale": 1,
+    "_visibility": 1108344832,
+    "_targetTexture": null,
+    "_postProcess": null,
+    "_usePostProcess": false,
+    "_cameraType": -1,
+    "_trackingType": 0,
+    "_id": "63WIch3o5BEYRlXzTT0oWc"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "manager",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [
+      {
+        "__id__": 9
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 12
+      }
+    ],
+    "_prefab": null,
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": "bbD5QNZ11AMZLiTf6L0PY2"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "audio",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 8
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 10
+      },
+      {
+        "__id__": 11
+      }
+    ],
+    "_prefab": null,
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": "09cflWPM5AW5eyRGb+/PJk"
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 9
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 100
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": "58jr39nl5E6KSVx7Hi3eYV"
+  },
+  {
+    "__type__": "c98b7EdUO1POYpXJQsRbETE",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 9
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_id": "48oaqJng5Lo60gtdtiAdXC"
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 8
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 100,
+      "height": 100
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": "dd1oaTw49OBawAeX9FhfuW"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "ui_parent",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 14
+      },
+      {
+        "__id__": 15
+      },
+      {
+        "__id__": 16
+      },
+      {
+        "__id__": 17
+      }
+    ],
+    "_prefab": null,
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": "2cw3P3noJGd4PTpymM15d2"
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": "b8uTlFRMZOL5NR9KuCmL6f"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_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": "8eBcidzD9K546hA2FyqOMV"
+  },
+  {
+    "__type__": "cc.BlockInputEvents",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": false,
+    "__prefab": null,
+    "_id": "6d6fa6vGVFZpDTEMrHC22p"
+  },
+  {
+    "__type__": "57a55onjQlOubAYMVK74UfF",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_id": "cetX00knhGV6jEQr3DmsqA"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "wait_loading_view",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 19
+      },
+      {
+        "__id__": 20
+      },
+      {
+        "__id__": 21
+      }
+    ],
+    "_prefab": null,
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": "2001XPbuNEQ6GdTXJgqqZ8"
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 18
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": "b6cs30In9PuYJheBWFmRxg"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 18
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_alignFlags": 45,
+    "_target": null,
+    "_left": 0,
+    "_right": 0,
+    "_top": 0,
+    "_bottom": 0,
+    "_horizontalCenter": 0,
+    "_verticalCenter": 0,
+    "_isAbsLeft": true,
+    "_isAbsRight": true,
+    "_isAbsTop": false,
+    "_isAbsBottom": true,
+    "_isAbsHorizontalCenter": true,
+    "_isAbsVerticalCenter": true,
+    "_originalWidth": 100,
+    "_originalHeight": 100,
+    "_alignMode": 2,
+    "_lockFlags": 0,
+    "_id": "ffBnkaMEBANpLeUBLsQTzJ"
+  },
+  {
+    "__type__": "cc.BlockInputEvents",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 18
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_id": "08IKVYjg5Hbr0yrO7pJ8tH"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "wait_send_msg_view",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": false,
+    "_components": [
+      {
+        "__id__": 23
+      },
+      {
+        "__id__": 24
+      },
+      {
+        "__id__": 25
+      }
+    ],
+    "_prefab": null,
+    "_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": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": "49EpA7Ke5FZrTo4BAtSNxq"
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 22
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": "faZ8jNdu9EPai+T4Jpax0Z"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 22
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_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": "338XD7XmxHnYZH+nFRTvTB"
+  },
+  {
+    "__type__": "cc.BlockInputEvents",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 22
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_id": "05fl+VQNlOKbtNKf5do5Os"
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1920
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": "d6rUX5yfhMlKoWX2bSbawx"
+  },
+  {
+    "__type__": "cc.Canvas",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_cameraComponent": {
+      "__id__": 7
+    },
+    "_alignCanvasWithScreen": true,
+    "_id": "12O/ljcVlEqLmVm3U2gEOQ"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_alignFlags": 45,
+    "_target": null,
+    "_left": 0,
+    "_right": 0,
+    "_top": 5.684341886080802e-14,
+    "_bottom": 5.684341886080802e-14,
+    "_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": "c5V1EV8IpMtrIvY1OE9t2u"
+  },
+  {
+    "__type__": "6f5ebpccc9AL6LN1gDBlxO0",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "home_node": {
+      "__id__": 3
+    },
+    "ui_parent": {
+      "__id__": 13
+    },
+    "laoding_view_wait": {
+      "__id__": 18
+    },
+    "send_msg_wait": {
+      "__id__": 22
+    },
+    "_id": "98LI+pKBxBApv8uU1sf2uQ"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": null,
+    "asset": null,
+    "fileId": "5cad85ad-e393-4bc6-aedf-858b69ac47e3",
+    "instance": null,
+    "targetOverrides": null
+  },
+  {
+    "__type__": "cc.SceneGlobals",
+    "ambient": {
+      "__id__": 32
+    },
+    "shadows": {
+      "__id__": 33
+    },
+    "_skybox": {
+      "__id__": 34
+    },
+    "fog": {
+      "__id__": 35
+    },
+    "octree": {
+      "__id__": 36
+    },
+    "skin": {
+      "__id__": 37
+    },
+    "lightProbeInfo": {
+      "__id__": 38
+    },
+    "postSettings": {
+      "__id__": 39
+    },
+    "bakedWithStationaryMainLight": false,
+    "bakedWithHighpLightmap": false
+  },
+  {
+    "__type__": "cc.AmbientInfo",
+    "_skyColorHDR": {
+      "__type__": "cc.Vec4",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 0.520833125
+    },
+    "_skyColor": {
+      "__type__": "cc.Vec4",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 0.520833125
+    },
+    "_skyIllumHDR": 20000,
+    "_skyIllum": 20000,
+    "_groundAlbedoHDR": {
+      "__type__": "cc.Vec4",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 0
+    },
+    "_groundAlbedo": {
+      "__type__": "cc.Vec4",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 0
+    },
+    "_skyColorLDR": {
+      "__type__": "cc.Vec4",
+      "x": 0.2,
+      "y": 0.5,
+      "z": 0.8,
+      "w": 1
+    },
+    "_skyIllumLDR": 20000,
+    "_groundAlbedoLDR": {
+      "__type__": "cc.Vec4",
+      "x": 0.2,
+      "y": 0.2,
+      "z": 0.2,
+      "w": 1
+    }
+  },
+  {
+    "__type__": "cc.ShadowsInfo",
+    "_enabled": false,
+    "_type": 0,
+    "_normal": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 1,
+      "z": 0
+    },
+    "_distance": 0,
+    "_planeBias": 1,
+    "_shadowColor": {
+      "__type__": "cc.Color",
+      "r": 76,
+      "g": 76,
+      "b": 76,
+      "a": 255
+    },
+    "_maxReceived": 4,
+    "_size": {
+      "__type__": "cc.Vec2",
+      "x": 512,
+      "y": 512
+    }
+  },
+  {
+    "__type__": "cc.SkyboxInfo",
+    "_envLightingType": 0,
+    "_envmapHDR": null,
+    "_envmap": null,
+    "_envmapLDR": null,
+    "_diffuseMapHDR": null,
+    "_diffuseMapLDR": null,
+    "_enabled": false,
+    "_useHDR": true,
+    "_editableMaterial": null,
+    "_reflectionHDR": null,
+    "_reflectionLDR": null,
+    "_rotationAngle": 0
+  },
+  {
+    "__type__": "cc.FogInfo",
+    "_type": 0,
+    "_fogColor": {
+      "__type__": "cc.Color",
+      "r": 200,
+      "g": 200,
+      "b": 200,
+      "a": 255
+    },
+    "_enabled": false,
+    "_fogDensity": 0.3,
+    "_fogStart": 0.5,
+    "_fogEnd": 300,
+    "_fogAtten": 5,
+    "_fogTop": 1.5,
+    "_fogRange": 1.2,
+    "_accurate": false
+  },
+  {
+    "__type__": "cc.OctreeInfo",
+    "_enabled": false,
+    "_minPos": {
+      "__type__": "cc.Vec3",
+      "x": -1024,
+      "y": -1024,
+      "z": -1024
+    },
+    "_maxPos": {
+      "__type__": "cc.Vec3",
+      "x": 1024,
+      "y": 1024,
+      "z": 1024
+    },
+    "_depth": 8
+  },
+  {
+    "__type__": "cc.SkinInfo",
+    "_enabled": false,
+    "_blurRadius": 0.01,
+    "_sssIntensity": 3
+  },
+  {
+    "__type__": "cc.LightProbeInfo",
+    "_giScale": 1,
+    "_giSamples": 1024,
+    "_bounces": 2,
+    "_reduceRinging": 0,
+    "_showProbe": true,
+    "_showWireframe": true,
+    "_showConvex": false,
+    "_data": null,
+    "_lightProbeSphereVolume": 1
+  },
+  {
+    "__type__": "cc.PostSettingsInfo",
+    "_toneMappingType": 0
+  }
+]

+ 11 - 0
assets/scene/main.scene.meta

@@ -0,0 +1,11 @@
+{
+  "ver": "1.1.50",
+  "importer": "scene",
+  "imported": true,
+  "uuid": "5cad85ad-e393-4bc6-aedf-858b69ac47e3",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {}
+}

+ 449 - 0
assets/scene/test.scene

@@ -0,0 +1,449 @@
+[
+  {
+    "__type__": "cc.SceneAsset",
+    "_name": "test",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_native": "",
+    "scene": {
+      "__id__": 1
+    }
+  },
+  {
+    "__type__": "cc.Scene",
+    "_name": "test",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      }
+    ],
+    "_active": true,
+    "_components": [],
+    "_prefab": null,
+    "_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
+    },
+    "autoReleaseAssets": false,
+    "_globals": {
+      "__id__": 8
+    },
+    "_id": "fb83bfd7-1bb4-43f9-990b-8b58e8b70d15"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Canvas",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 3
+      }
+    ],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 5
+      },
+      {
+        "__id__": 6
+      },
+      {
+        "__id__": 7
+      }
+    ],
+    "_prefab": null,
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 540,
+      "y": 960,
+      "z": 0
+    },
+    "_lrot": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_lscale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_mobility": 0,
+    "_layer": 33554432,
+    "_euler": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_id": "beI88Z2HpFELqR4T5EMHpg"
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "Camera",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "_parent": {
+      "__id__": 2
+    },
+    "_children": [],
+    "_active": true,
+    "_components": [
+      {
+        "__id__": 4
+      }
+    ],
+    "_prefab": null,
+    "_lpos": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 1000
+    },
+    "_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": "ebFwiq8gBFaYpqYbdoDODe"
+  },
+  {
+    "__type__": "cc.Camera",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 3
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_projection": 0,
+    "_priority": 0,
+    "_fov": 45,
+    "_fovAxis": 0,
+    "_orthoHeight": 959.9999999999999,
+    "_near": 0,
+    "_far": 1000,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_depth": 1,
+    "_stencil": 0,
+    "_clearFlags": 7,
+    "_rect": {
+      "__type__": "cc.Rect",
+      "x": 0,
+      "y": 0,
+      "width": 1,
+      "height": 1
+    },
+    "_aperture": 19,
+    "_shutter": 7,
+    "_iso": 0,
+    "_screenScale": 1,
+    "_visibility": 1108344832,
+    "_targetTexture": null,
+    "_postProcess": null,
+    "_usePostProcess": false,
+    "_cameraType": -1,
+    "_trackingType": 0,
+    "_id": "63WIch3o5BEYRlXzTT0oWc"
+  },
+  {
+    "__type__": "cc.UITransform",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1080,
+      "height": 1919.9999999999998
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_id": "d6rUX5yfhMlKoWX2bSbawx"
+  },
+  {
+    "__type__": "cc.Canvas",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_cameraComponent": {
+      "__id__": 4
+    },
+    "_alignCanvasWithScreen": true,
+    "_id": "12O/ljcVlEqLmVm3U2gEOQ"
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "__prefab": null,
+    "_alignFlags": 45,
+    "_target": null,
+    "_left": 0,
+    "_right": 0,
+    "_top": 5.684341886080802e-14,
+    "_bottom": 5.684341886080802e-14,
+    "_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": "c5V1EV8IpMtrIvY1OE9t2u"
+  },
+  {
+    "__type__": "cc.SceneGlobals",
+    "ambient": {
+      "__id__": 9
+    },
+    "shadows": {
+      "__id__": 10
+    },
+    "_skybox": {
+      "__id__": 11
+    },
+    "fog": {
+      "__id__": 12
+    },
+    "octree": {
+      "__id__": 13
+    },
+    "skin": {
+      "__id__": 14
+    },
+    "lightProbeInfo": {
+      "__id__": 15
+    },
+    "postSettings": {
+      "__id__": 16
+    },
+    "bakedWithStationaryMainLight": false,
+    "bakedWithHighpLightmap": false
+  },
+  {
+    "__type__": "cc.AmbientInfo",
+    "_skyColorHDR": {
+      "__type__": "cc.Vec4",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 0.520833125
+    },
+    "_skyColor": {
+      "__type__": "cc.Vec4",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 0.520833125
+    },
+    "_skyIllumHDR": 20000,
+    "_skyIllum": 20000,
+    "_groundAlbedoHDR": {
+      "__type__": "cc.Vec4",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 0
+    },
+    "_groundAlbedo": {
+      "__type__": "cc.Vec4",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 0
+    },
+    "_skyColorLDR": {
+      "__type__": "cc.Vec4",
+      "x": 0.2,
+      "y": 0.5,
+      "z": 0.8,
+      "w": 1
+    },
+    "_skyIllumLDR": 20000,
+    "_groundAlbedoLDR": {
+      "__type__": "cc.Vec4",
+      "x": 0.2,
+      "y": 0.2,
+      "z": 0.2,
+      "w": 1
+    }
+  },
+  {
+    "__type__": "cc.ShadowsInfo",
+    "_enabled": false,
+    "_type": 0,
+    "_normal": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 1,
+      "z": 0
+    },
+    "_distance": 0,
+    "_planeBias": 1,
+    "_shadowColor": {
+      "__type__": "cc.Color",
+      "r": 76,
+      "g": 76,
+      "b": 76,
+      "a": 255
+    },
+    "_maxReceived": 4,
+    "_size": {
+      "__type__": "cc.Vec2",
+      "x": 512,
+      "y": 512
+    }
+  },
+  {
+    "__type__": "cc.SkyboxInfo",
+    "_envLightingType": 0,
+    "_envmapHDR": null,
+    "_envmap": null,
+    "_envmapLDR": null,
+    "_diffuseMapHDR": null,
+    "_diffuseMapLDR": null,
+    "_enabled": false,
+    "_useHDR": true,
+    "_editableMaterial": null,
+    "_reflectionHDR": null,
+    "_reflectionLDR": null,
+    "_rotationAngle": 0
+  },
+  {
+    "__type__": "cc.FogInfo",
+    "_type": 0,
+    "_fogColor": {
+      "__type__": "cc.Color",
+      "r": 200,
+      "g": 200,
+      "b": 200,
+      "a": 255
+    },
+    "_enabled": false,
+    "_fogDensity": 0.3,
+    "_fogStart": 0.5,
+    "_fogEnd": 300,
+    "_fogAtten": 5,
+    "_fogTop": 1.5,
+    "_fogRange": 1.2,
+    "_accurate": false
+  },
+  {
+    "__type__": "cc.OctreeInfo",
+    "_enabled": false,
+    "_minPos": {
+      "__type__": "cc.Vec3",
+      "x": -1024,
+      "y": -1024,
+      "z": -1024
+    },
+    "_maxPos": {
+      "__type__": "cc.Vec3",
+      "x": 1024,
+      "y": 1024,
+      "z": 1024
+    },
+    "_depth": 8
+  },
+  {
+    "__type__": "cc.SkinInfo",
+    "_enabled": false,
+    "_blurRadius": 0.01,
+    "_sssIntensity": 3
+  },
+  {
+    "__type__": "cc.LightProbeInfo",
+    "_giScale": 1,
+    "_giSamples": 1024,
+    "_bounces": 2,
+    "_reduceRinging": 0,
+    "_showProbe": true,
+    "_showWireframe": true,
+    "_showConvex": false,
+    "_data": null,
+    "_lightProbeSphereVolume": 1
+  },
+  {
+    "__type__": "cc.PostSettingsInfo",
+    "_toneMappingType": 0
+  }
+]

+ 11 - 0
assets/scene/test.scene.meta

@@ -0,0 +1,11 @@
+{
+  "ver": "1.1.50",
+  "importer": "scene",
+  "imported": true,
+  "uuid": "fb83bfd7-1bb4-43f9-990b-8b58e8b70d15",
+  "files": [
+    ".json"
+  ],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "26d732a1-6fbb-46a8-a2dd-db148d182e85",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/GameManager.ts

@@ -0,0 +1,9 @@
+import { _decorator, Component, Node } from 'cc';
+const { ccclass, property } = _decorator;
+
+@ccclass('GameManager')
+export class GameManager extends Component {
+    public static openId:string = 'asd'
+}
+
+

+ 9 - 0
assets/script/GameManager.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "e5e1713e-d728-486e-8287-7c14b7f91bf1",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 80 - 0
assets/script/config.ts

@@ -0,0 +1,80 @@
+import { _decorator, Component, Node } from 'cc';
+const { ccclass, property } = _decorator;
+
+@ccclass('config')
+export class config  {
+    public static Platform = {
+        platform: "douyin",
+        // platform: "wx"
+    }
+    public static API = {
+        login : "/snake/user/login",
+        info : "/snake/user/info",
+        get_dyopen_id : "/snake/user/get_dyopen_id",
+        sync_integral : "/snake/user/sync_integral",
+        user_ranking : "/snake/user/user_ranking",
+        user_car_list : "/snake/user/user_car_list",
+    }
+
+
+    public static STATIC_API = {
+        levels : "/snakestatic/levels.json",
+        regions : "/snakestatic/regions.json",
+        car_list : "/snakestatic/car_list.json",
+        rankings: (region_id)=>{
+            return `/snakestatic/rankings/${region_id}.json`
+        }
+    }
+
+    public static AD_TYPE = {
+        UNKNOWN:""
+    }
+
+
+    public static status = {
+        SUCCESS:10000
+    }
+
+    public static item_type = {
+        box_blue:1,
+        box_zise:2,
+        box_yellow:3,
+        box_green:4,
+        box_red:5,
+        wall:6,
+        coin:7,
+        scores:8,
+        box_fenhong:9,
+        box_huanglv:10,
+        box_qing:11,
+        box_zi:12,
+        box_huang:13,
+    }
+
+    public static buff_type = {
+        dun:1, //盾无敌时间
+        xing:2, //获取积分翻倍
+        xi:3 //吸收周边的积分
+    }
+
+    public static collider_dir = {
+        top:1,
+        left:2,
+        right:3
+    }
+
+    public static PREFAB={
+        game:"prefabs/game"
+    }
+
+    public static AUDIO={
+        loading_bgm:"bgm/loading_bgm",
+    }
+
+    public static UI = {
+        ui_setting:"ui/setting",
+        home:"ui/home"
+    }
+}
+
+

+ 9 - 0
assets/script/config.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "7e8c402e-7c6b-4f1c-9531-57550db2728b",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 111 - 0
assets/script/data.ts

@@ -0,0 +1,111 @@
+import { Enum } from "cc";
+
+export class model_item_data{
+    public id:number = 0
+    public name:string = "123"
+    public width:number = 1080
+    public height:number = 1000
+    public list:model_content_item_data[] = [];
+}
+
+export class model_content_item_data{
+    public x:number = 0;
+    public y:number = 0;
+    public w:number = 0;
+    public h:number = 0;
+    public buff_type:number = -1;
+    public item_type:number = -1;
+}
+
+export class level_data{
+    public content:level_item_data[] = []
+}
+
+export class level_item_data{
+    public content:string = ""
+}
+
+export class userInfo{
+    public avatarUrl:string = ""
+    public nickName:string = ""
+    public gender:number = 0
+    public city:string = ""
+    public province:string = ""
+    public country:string = ""
+    public language:string = ""
+}
+
+export class userData{
+    public id:number = 0
+    public openid:string = ""
+    public avatarUrl:string = ""
+    public nickName:string = ""
+    public unionid:string = ""
+    public region_id:number = 0
+    public license_plate:string = ""
+    public ip:string = ""
+    public platform:string = ""
+    public create_at:string = ""
+    public license_code:string = ""
+    public token:string = ""
+}
+
+export class rankData{
+    public score:number = 0 //最大积分
+    public number:number = 0 //排名 0 没有分数和排名
+    public ranking_desc:string = "" //	排名描述
+    public avatarUrl:string = "" //	头像
+    public nickName:string = "" //昵称
+    public license_code:string = "" //车牌号
+    public car_url:string = "" //	当前汽车图片
+}
+
+export class user_car_list{
+    public car_list:number[] = [] //汽车列表
+    public default_car_id:number = 0 //	默认车辆
+}
+
+export class car_item_data{
+    public id:number = 0;
+    public name:string = "";
+    public unlock_points:number = 0;
+    public cover:string = "";
+    public home_cover:string = "";
+    public ranking_cover:string = "";
+}
+
+export class edit_game_config_data{
+    public box_list:box_random_data[] = []
+    public scores:box_random_data = null
+    public car_init_num:number = 3;
+    public buff_xing:number = 10;
+    public buff_xi:number = 10;
+    public buff_dun:number = 10;
+    public buff_xi_range:number = 10;
+
+    //
+    public car_origin_speed:number = 700;
+    public car_add_speed_time:number = 1;
+    public car_add_speed_num:number = 0;
+    public car_add_speed_max:number = 0;
+    //
+    public buff_xi_add_speed:number = 0;
+    public buff_dun_add_speed:number = 0;
+    public buff_xing_add_speed:number = 0;
+}
+
+export class box_random_data{
+    public min:number = 0;
+    public max:number = 0;
+    public type:number = 0;
+}
+
+export enum DirType{
+    LEFT,
+    RIGHT,
+    NONE,
+}
+
+
+
+

+ 9 - 0
assets/script/data.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "1d59f659-1179-4021-9410-c9aa2cd75734",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/game.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "3ba836f5-c68f-4bb3-b9af-7ecbcac27a94",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 24 - 0
assets/script/game/base.ts

@@ -0,0 +1,24 @@
+import { _decorator, Component, Node } from 'cc';
+import { model_content_item_data } from '../data';
+import { IPoolHanderComponent } from '../lib/IPoolHanderComponent';
+const { ccclass, property } = _decorator;
+
+@ccclass('base')
+export class base extends Component implements IPoolHanderComponent {
+    unuse(): void {
+        this.ReSetNode()
+    }
+    reuse(args: any): void {
+     
+    }
+    protected mData:model_content_item_data = null;
+    public getData(){
+        return this.mData
+    }
+
+    protected ReSetNode(){
+        console.log("ReSetNode")
+    }
+}
+
+

+ 9 - 0
assets/script/game/base.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "2e5673c5-e0fd-47eb-806f-d7c92413c6dc",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 96 - 0
assets/script/game/box.ts

@@ -0,0 +1,96 @@
+import { _decorator, BoxCollider2D, Collider2D, Component, Director, director, Label, Node, RigidBody2D, Size, Sprite, SpriteFrame, UITransform, Vec3 } from 'cc';
+import { model_content_item_data } from '../data';
+import { tools } from '../tools';
+import { Util } from '../util';
+import { base } from './base';
+import { car } from './car';
+const { ccclass, property } = _decorator;
+
+@ccclass('box')
+export class box extends base {
+    @property(Node) buff:Node = null;
+    @property(BoxCollider2D) collider:BoxCollider2D = null; 
+    @property(Node) lab_scores:Node = null;
+    private scores:number = 10;
+    private CdTime:number =0;
+    private isOnCollide:boolean = false;
+    private mCar:car = null;
+    public init(data:model_content_item_data,box_sf:SpriteFrame,buff_sf:SpriteFrame,car:car){
+        this.node.active = true
+        this.mData = data;
+        this.mCar = car
+        this.node.position = new Vec3(this.mData.x,this.mData.y)
+        this.node.getComponent(Sprite).spriteFrame = box_sf
+        this.buff.getComponent(Sprite).spriteFrame = buff_sf
+        this.node.getComponent(UITransform).contentSize = new Size(this.mData.w,this.mData.h)
+        this.node.getComponent(BoxCollider2D).size =  new Size(this.mData.w,this.mData.h)
+        // this.node.getComponent(BoxCollider2D).offset.y = 40
+        this.collider.node.getComponent(UITransform).contentSize =  new Size(this.mData.w,15)
+        this.collider.node.getComponent(BoxCollider2D).size =  new Size(this.mData.w,15)
+        let sd = tools.getBoxRandom(this.mData.item_type)
+        this.scores = Util.getRandomInt(sd.min,sd.max);
+        this.updateScores()
+        
+        // this.node.getComponent(RigidBody2D).wakeUp()
+    }
+    protected ReSetNode(){
+        this.node.position = Vec3.ZERO
+        this.scores = 0
+        this.isOnCollide = false
+        this.node.getComponent(Sprite).spriteFrame = null
+        this.buff.getComponent(Sprite).spriteFrame = null
+    }
+    public hurt(call,isKill=false){
+        if(!this.isOnCollide){
+            this.scheduleOnce(()=>{
+                this.isOnCollide = false;
+            },this.CdTime)
+            // director.once(Director.EVENT_AFTER_DRAW,()=>{
+            //     this.isOnCollide = false;
+            // })
+            this.isOnCollide = true;
+    
+            let isUseBuff:boolean = this.mData.buff_type!=-1
+            if(this.scores<=1||isKill){
+                this.removeSelf()
+                isUseBuff = true
+            }else{
+                if(isUseBuff){
+                    isUseBuff = false
+                }
+            }
+
+            if(call!=null){
+                if(isUseBuff){
+                    call(this.mData,isKill,this.scores)
+                }else{
+                    call()
+                }
+        
+            }
+            if(!isUseBuff){
+                this.scores -= 1;
+                this.updateScores()
+            }
+        }
+   
+    }
+
+    public removeSelf(){
+        let self = this;
+        self.node.active = false
+        self.buff.getComponent(Sprite).spriteFrame = null
+        // self.node.getComponent(RigidBody2D).sleep()
+        self.node.position = Vec3.ZERO
+        self.mCar.getGame().removeBoxForList(self.node)
+        director.once(Director.EVENT_AFTER_DRAW,()=>{
+            self.mCar.getGame().getPoolManager().putBox(self.node)
+        })
+    }
+
+    private updateScores(){
+        this.lab_scores.getComponent(Label).string = this.scores+""
+    }
+}
+
+

+ 9 - 0
assets/script/game/box.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "4f3cb31e-a40f-4073-83bb-6bf34655c87f",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 40 - 0
assets/script/game/buff_show.ts

@@ -0,0 +1,40 @@
+import { _decorator, Component, Node } from 'cc';
+const { ccclass, property } = _decorator;
+
+@ccclass('buff_show')
+export class buff_show extends Component {
+    @property(Node) icon_buff_xi:Node = null;
+    @property(Node) icon_buff_xing:Node = null;
+    @property(Node) icon_buff_dun:Node = null;
+    public initView(){
+        this.icon_buff_xi.active = false;
+        this.icon_buff_xing.active = false;
+        this.icon_buff_dun.active = false;
+    }
+
+    public showBuffXi(){
+        this.icon_buff_xi.active = true;
+    }
+
+    public hideBuffXi(){
+        this.icon_buff_xi.active = false;
+    }
+
+    public showBuffXing(){
+        this.icon_buff_xing.active = true;
+    }
+
+    public hideBuffXing(){
+        this.icon_buff_xing.active = false;
+    }
+
+    public showBuffDun(){
+        this.icon_buff_dun.active = true;
+    }
+
+    public hideBuffDun(){
+        this.icon_buff_dun.active = false;
+    }
+}
+
+

+ 9 - 0
assets/script/game/buff_show.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "8322a22c-786d-4d66-9ba3-52ad6dec9b82",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 448 - 0
assets/script/game/car.ts

@@ -0,0 +1,448 @@
+import { _decorator, BoxCollider2D, CircleCollider2D, Collider2D, Component, Contact2DType, Director, director, IPhysics2DContact, Label, math, Node, PolygonCollider2D, Rect, RigidBody, RigidBody2D, Sprite, tween, Tween, UITransform, Vec2, Vec3, View } from 'cc';
+import { wall } from './wall';
+import { box } from './box';
+import { coin } from './coin';
+import { tools } from '../tools';
+import { SdkUtil } from '../sdkUtil';
+import { game } from './game';
+import { DirType, model_content_item_data } from '../data';
+import { config } from '../config';
+import { imageCacheManager } from '../manager/imageCacheManager';
+import { userDataManager } from '../manager/userDataManager';
+const { ccclass, property } = _decorator;
+
+@ccclass('car')
+export class car extends Component {
+    private offsetY:number = 0;
+    private origin_pos_y:number = -300;
+    private map:Node = null;
+    private mDir:Vec3 = Vec3.ZERO;
+    private mOldDir:Vec3 = Vec3.ZERO;
+    private mGameOldDir:Vec3 = Vec3.ZERO;
+    private mDis:number = 0;
+    private isAction:boolean = false;
+    private speed:number = 700;
+    @property(CircleCollider2D) car_collider:CircleCollider2D = null;
+    @property(Node) lab_hp:Node = null;
+    private hp:number = 0
+    private scores:number = 0
+    private over_cb = null;
+    private update_scores_cb = null;
+    private game_manager:game = null;
+    private buff_xi_status:boolean = false;
+    private buff_dun_status:boolean = false;
+    private buff_xing_status:boolean = false;
+    private speed_bei:number = 1;
+    @property(Number) move_speed_y:Number = 700;
+    @property(Number) move_speed_x:Number = 700;
+    @property(Boolean) is_open_jiaozheng:Boolean = true;
+    private carDir:DirType = DirType.NONE
+    private canvas_width:number = 1080;
+    private isStopY:boolean = false
+    private _curRingPos_1: Vec3 = new Vec3();//当前圆圈坐标
+    @property(Node) spr:Node = null
+    public init(m:Node,cb,cb1,g:game){
+        this.spr.getComponent(Sprite).spriteFrame = imageCacheManager.getGameCarImageById(userDataManager.user_car_list.default_car_id)
+        this.origin_pos_y = this.node.position.y
+        this.game_manager = g
+        this.over_cb = cb
+        this.update_scores_cb = cb1
+        this.map = m;
+        this.isAction = false;
+        this.mOldDir = this.node.position
+        this.buff_xi_status = false;
+        this.buff_dun_status = false;
+        this.buff_xing_status = false;
+        this.isStopY = false;
+        this.canvas_width = View.instance.getVisibleSize().width
+        // let cd = this.node.getComponent(BoxCollider2D)
+        // cd.off(Contact2DType.BEGIN_CONTACT)
+        // cd.on(Contact2DType.BEGIN_CONTACT,this.onColliderCoin.bind(this))
+
+        // cd.off(Contact2DType.END_CONTACT)
+        // cd.on(Contact2DType.END_CONTACT,this.onColliderCoin.bind(this))
+
+        // cd.off(Contact2DType.PRE_SOLVE)
+        // cd.on(Contact2DType.PRE_SOLVE,this.onColliderWall.bind(this))
+        // this.car_collider.off(Contact2DType.BEGIN_CONTACT)
+        // this.car_collider.on(Contact2DType.BEGIN_CONTACT,this.onColliderCoin.bind(this))
+
+        // this.car_collider.off(Contact2DType.END_CONTACT)
+        // this.car_collider.on(Contact2DType.END_CONTACT,this.onColliderCoin.bind(this))
+
+        // this.car_collider.off(Contact2DType.POST_SOLVE)
+        // this.car_collider.on(Contact2DType.POST_SOLVE,(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null)=>{
+        //     // console.log("this.car_collider",otherCollider.node.name)
+        //     if(otherCollider.node.name.endsWith("fku")){
+        //         if(otherCollider.node.parent.getComponent(box)!=null){
+        //             otherCollider.node.parent.getComponent(box).hurt(this.shake.bind(this),this.buff_dun_status)
+        //         }
+        //     }
+
+        //     if(otherCollider.node.name.endsWith("wall")){
+        //         // this.node.getComponent(RigidBody2D).linearVelocity  =  new Vec2(this.move_speed_x.valueOf(),this.move_speed_y.valueOf())
+        //     }
+        // },this)
+        this.move_speed_y = tools.game_config.car_origin_speed
+        this.hp = tools.game_config.car_init_num
+        // this.hp = 100000
+        this.scores = 0
+        this.updateHp()
+        this.updateScores()
+        this.node.getComponent(RigidBody2D).gravityScale = -3
+        this.node.getComponent(RigidBody2D).linearDamping = 1
+
+        // this.schedule(this.check.bind(this),0.01)
+        // circle.radius = tools.game_config.buff_xi_range
+        // circle.radius = 400
+        // circle.off(Contact2DType.BEGIN_CONTACT)
+        // circle.on(Contact2DType.BEGIN_CONTACT,(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null)=>{
+        //     if(otherCollider.node.name.endsWith("coin")){
+        //         if(otherCollider.node.getComponent(coin)!=null){
+        //             otherCollider.node.getComponent(coin).moveToTarget(otherCollider.node.parent.getComponent(UITransform).convertToNodeSpaceAR(this.node.position))
+        //             this.hp+=tools.randomCoin()
+        //             this.updateHp()
+        //         }
+        //     }
+        // })
+        this.unschedule(this.addSpeed)
+        this.schedule(this.addSpeed.bind(this),tools.game_config.car_add_speed_time)
+    }
+
+    addSpeed(){
+        let speed = this.move_speed_y.valueOf()+(tools.game_config.car_add_speed_num)
+        if(speed<tools.game_config.car_add_speed_max){
+            this.move_speed_y=speed
+        }
+    }
+
+    addSpeedNum(num:number){
+        let speed =  this.move_speed_y.valueOf()+(num*0.01*this.move_speed_y.valueOf())
+        if(speed<tools.game_config.car_add_speed_max){
+            this.move_speed_y=speed
+        }
+    }
+
+    onColliderCoin(coin_node:Node){
+        if(coin_node.getComponent(coin)!=null){
+            coin_node.getComponent(coin).removeSelf()
+            this.hp+=tools.randomCoin()
+            this.updateHp()
+        }
+    }
+
+
+    onColliderBox(box_node:Node){
+        if(box_node.getComponent(box)!=null){
+            box_node.getComponent(box).hurt(this.shake.bind(this),this.buff_dun_status)
+        }
+    }
+   
+    
+    public getIsOpenJZ():boolean{
+        return this.is_open_jiaozheng.valueOf()
+    }
+
+    public getGame(){
+        return this.game_manager
+    }
+
+    public getXiStatus(){
+        return this.buff_xi_status
+    }
+
+    private updateScores(){
+        if(this.update_scores_cb!=null){
+            this.update_scores_cb(this.scores)
+        }
+    }
+
+    private updateHp(){
+        this.lab_hp.getComponent(Label).string = this.hp+""
+    }
+    public getScores(){
+        return this.scores
+    }
+
+    private shake(data:model_content_item_data,isKill:boolean,scores:number){
+        // Tween.stopAllByTarget(this.node)
+        this.hp-=1;
+        this.updateHp()
+        // this.isAction = true;
+        if(isKill){
+          this.scores += ( scores*(this.buff_xing_status?2:1) )
+        }else{
+            this.scores+=( 1*(this.buff_xing_status?2:1) );
+        }
+        // this.move_speed_y = 0
+        this.isStopY  = true
+        this.updateScores()
+        // this.node.getComponent(RigidBody2D).sleep()
+        SdkUtil.vibrateShort()
+        // this.node.position = new Vec3(this.node.position.x, this.node.position.y-8)
+        // this.node.getComponent(RigidBody2D).linearVelocity = new Vec2(0,-2.5)
+
+        // director.once(Director.EVENT_AFTER_DRAW,()=>{
+        //     // this.move_speed_y = 0
+        // })
+        // tween(this.node).delay(0.1).call(()=>{
+     
+        //     // this.isAction = false;
+        //     // this.node.position = new Vec3(this.node.position.x, this.node.position.y+8)
+        //     // this.node.getComponent(RigidBody2D).wakeUp()
+
+        //     // this.node.getComponent(RigidBody2D).linearVelocity   = new Vec2(this.move_speed_x.valueOf(),30)
+        // }).start()
+        Tween.stopAllByTarget(this.lab_hp)
+        tween(this.lab_hp).delay(0.02).call(()=>{ this.isStopY = false}).start()
+        if(this.hp<0){
+            Tween.stopAllByTarget(this.node)
+            // this.node.getComponent(RigidBody2D).gravityScale = 0
+            // this.node.getComponent(RigidBody2D).linearDamping = 0
+            this.over_cb()
+        }else{
+            if(data!=null){
+                switch (data.buff_type) {
+                    case config.buff_type.dun:
+                        // console.log("获取buff 盾")
+                        this.buff_dun()
+                    break;
+                    case config.buff_type.xing:
+                        // console.log("获取buff 星")
+                        this.buff_xing()
+                    break;
+                    case config.buff_type.xi:
+                        // console.log("获取buff 吸")
+                        this.buff_xi()
+                    break;
+                }
+            }
+        }
+    }
+
+    public buff_xi(){
+        this.buff_xi_status = true;
+        this.addSpeedNum(tools.game_config.buff_xi_add_speed)
+        this.unschedule(this.cancelScheduleBuffXi)
+        director.once(Director.EVENT_AFTER_DRAW,()=>{
+            this.scheduleOnce(this.cancelScheduleBuffXi.bind(this),tools.game_config.buff_xi)
+            this.game_manager.getBuffShowView().showBuffXi()
+        })
+    }
+
+    public cancelScheduleBuffXi(){
+        this.buff_xi_status = false
+        this.game_manager.getBuffShowView().hideBuffXi()
+    }
+
+    public buff_xing(){
+        this.buff_xing_status = true;
+        this.addSpeedNum(tools.game_config.buff_xi_add_speed)
+        this.unschedule(this.cancelScheduleBuffXi)
+        director.once(Director.EVENT_AFTER_DRAW,()=>{
+            this.scheduleOnce(this.cancelScheduleBuffXing.bind(this),tools.game_config.buff_xing)
+            this.game_manager.getBuffShowView().showBuffXing()
+        })
+    }
+
+    public cancelScheduleBuffXing(){
+        this.buff_xing_status = false
+        this.game_manager.getBuffShowView().hideBuffXing()
+    }
+
+    public buff_dun(){
+        this.buff_dun_status = true;
+        this.addSpeedNum(tools.game_config.buff_dun_add_speed)
+        this.unschedule(this.cancelScheduleBuffDun)
+        director.once(Director.EVENT_AFTER_DRAW,()=>{
+            this.scheduleOnce(this.cancelScheduleBuffDun.bind(this),tools.game_config.buff_dun)
+            this.game_manager.getBuffShowView().showBuffDun()  
+        })
+    }
+
+
+    public cancelScheduleBuffDun(){
+        this.buff_dun_status = false
+        this.game_manager.getBuffShowView().hideBuffDun()
+    }
+
+
+    public setMoveSpeedX(speed_x:number){
+        // this.move_speed_x = speed_x
+    }
+    check(){
+    }
+    protected update(dt: number): void {
+        if(this.map!=null&&this.hp>=0){
+            let x = 0
+            let y = this.isStopY?this.node.position.y:this.node.position.y+this.move_speed_y.valueOf()*dt;
+
+            let self_pos = new Vec3(this.node.position.x,this.node.position.y)
+            let dis = Math.abs(self_pos.x-this.mDir.x)
+            if(dis>1){
+                // console.log("dis",this.move_speed_x)
+                x = self_pos.subtract(this.mDir).normalize().x*this.move_speed_x.valueOf()*dt*this.speed_bei;
+            }
+
+            x = this.node.position.x-x;
+    
+            let size = this.node.getComponent(UITransform).contentSize;
+            let rect = new Rect(x-size.width*0.5,y-size.height*0.5,size.width,size.height)
+            // let rect = this.node.getComponent(UITransform).getBoundingBox()
+            let list = this.game_manager.carCollider(rect)
+            if(list.length>0){
+                for (let index = 0; index < list.length; index++) {
+                    const element = list[index];
+                    if(element.collider_dir==config.collider_dir.top){
+                        y = this.node.position.y
+                        if(element.type==0){
+                            this.onColliderBox(element.node)
+                        }else if(element.type==1){
+                            x-=element.moveOffset
+                            // console.log("carCollider wall",element)
+                        }
+                    }else{
+                        // x = this.node.position.x
+                        if(element.type==2){
+                            this.onColliderCoin(element.node)
+                        }
+                    }
+                }
+            }
+
+            let left = this.canvas_width*0.5*-1+90*0.5;
+            let right = this.canvas_width*0.5-90*0.5;
+
+            if(this.carDir==DirType.LEFT){
+
+                let left_x = this.game_manager.getLeftObstacles(new Rect(this.node.position.x-size.width*0.5,this.node.position.y-size.height*0.5,size.width,size.height))
+                // console.log("left_x",left_x)
+                if(left_x!=null&&x<left_x){
+                    x = left_x
+                }
+
+                if(x<=left){
+                    x = this.node.position.x
+                }
+            }
+
+            if(this.carDir==DirType.RIGHT){
+                let right_x = this.game_manager.getRightObstacles(new Rect(this.node.position.x-size.width*0.5,this.node.position.y-size.height*0.5,size.width,size.height))
+                // console.log("right_x",right_x)
+                if(right_x!=null&&x>right_x){
+                    x = right_x
+                }
+                if(x>=right){
+                    x = this.node.position.x
+                }
+            }
+            // this._curRingPos_1.set(0, 0, 0);
+            // Vec3.lerp(this._curRingPos_1, this.node.position, new Vec3(x,y), 50 * dt);
+
+            // this.node.setPosition(this._curRingPos_1);
+            this.node.setPosition(x,y)
+            this.offsetY =Math.abs(this.origin_pos_y-y)
+            let dir = new Vec3(this.map.position.x,-this.offsetY,this.map.position.z)
+            this.map.position = dir
+        }
+    }
+
+    public setDir(dir:DirType){
+        // if(this.carDir!=dir){
+        //     this.node.getComponent(RigidBody2D).linearVelocity  =  new Vec2(0,this.move_speed_y.valueOf())
+        // }
+        this.carDir = dir
+    }
+
+
+    public setDisDir(dis:number){
+        this.speed_bei = dis / 10
+
+        if(this.carDir==DirType.LEFT){
+            this.mDir = new Vec3(this.node.position.x-dis,this.node.position.y)
+        }
+
+        if(this.carDir==DirType.RIGHT){
+            this.mDir = new Vec3(this.node.position.x+dis,this.node.position.y)
+        }
+    }
+    public setDis(dis:number){
+        this.setSpeed(new Vec3(dis))
+        // this.mDis = dis
+    }
+
+    public getDis(){
+        return this.mDis
+    }
+
+    public getCarDir(){
+        return this.carDir
+    }
+    public setSpeed(dir:Vec3){
+        // let dis = Math.abs(this.node.position.x - dir.x) 
+        // if(dis>200){
+        //     dis = 500
+        // }
+        // this.mDis = dis;
+
+        let dis = Math.abs(this.mOldDir.x - dir.x) 
+        // let is_char = false
+        // if(this.carDir===DirType.LEFT){
+        //     if(dir.x>this.node.position.x){
+        //         is_char = true
+        //     }
+        // }else if(this.carDir===DirType.RIGHT){
+        //     if(dir.x<this.node.position.x){
+        //         is_char = true
+        //     }
+     
+        // }
+        // if(is_char){
+        //     dis = Math.abs(this.mGameOldDir.x - dir.x)
+        // }else{
+        //     this.mGameOldDir = dir
+        // }
+      
+        this.mOldDir = this.node.position
+        // dis*=2
+        // console.log("this.mDis",dis)
+        this.mDis = dis;
+        // if(this.mDir.x!=0){
+        //     //与目标位置的距离进行速度算法 - 距离越长 速度越快
+        //     if(!this.isAction){
+        //         let dis = Math.abs(this.mOldDir.x - dir.x) 
+        //         if(this.carDir===DirType.LEFT){
+        //             if(dir.x>this.node.position.x){
+        //                 dis = Math.abs(this.mGameOldDir.x - dir.x)
+        //             }
+        //         }else if(this.carDir===DirType.RIGHT){
+        //             if(dir.x<this.node.position.x){
+        //                 dis = Math.abs(this.mGameOldDir.x - dir.x)
+        //             }
+             
+        //         }
+            
+        //         this.mDis = dis;
+        //         // if(dis<=100){
+        //         //     this.node.getComponent(RigidBody2D).linearVelocity  = new Vec2(10*x,30)
+        //         // }else if(dis>100&&dis<=200){
+        //         //     this.node.getComponent(RigidBody2D).linearVelocity  = new Vec2(20*x,30)
+        //         // }else{
+        //         //     this.node.getComponent(RigidBody2D).linearVelocity  = new Vec2(dis/200*35*x,25)
+        //         // }
+        //         // this.node.position = new Vec3(this.node.position.x+x*this.speed*dt,this.node.position.y,this.node.position.z)
+        //     }
+        // }else{
+        //     if(this.node.getComponent(RigidBody2D).linearVelocity.x!=0){
+        //         this.node.getComponent(RigidBody2D).linearVelocity  = new Vec2(0,this.move_speed_y.valueOf())
+        //     }
+        // }
+ 
+    }
+    // protected update(dt: number): void {
+    //     this.node.position =  new Vec3(this.node.position.x,this.node.position.y+dt*500,this.node.position.z)
+    //     this.map.position = new Vec3(this.map.position.x,this.map.position.y-dt*500,this.map.position.z)
+    // }
+}
+
+

+ 9 - 0
assets/script/game/car.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "64d1ee08-3ca6-4e5d-9433-e16d4bb7c36e",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 60 - 0
assets/script/game/coin.ts

@@ -0,0 +1,60 @@
+import { _decorator, CircleCollider2D, Component, Director, director, Node, RigidBody2D, Size, Sprite, tween, UITransform, Vec2, Vec3 } from 'cc';
+import { model_content_item_data } from '../data';
+import { car } from './car';
+import { tools } from '../tools';
+import { base } from './base';
+const { ccclass, property } = _decorator;
+
+@ccclass('coin')
+export class coin extends base {
+    private mCar:car = null;
+    private isMove:boolean = false;
+    public init(data:model_content_item_data,car:car){
+        this.mCar = car
+        this.mData = data
+        this.node.position = new Vec3(this.mData.x,this.mData.y,this.node.position.z)
+        this.node.getComponent(UITransform).contentSize = new Size(this.mData.w,this.mData.h)
+        this.node.getComponent(CircleCollider2D).radius = this.mData.w*0.5
+        this.unscheduleAllCallbacks()
+        this.schedule(this.on_update,0.2)
+        this.getComponent(RigidBody2D).wakeUp()
+    }
+
+    protected ReSetNode(){
+        this.node.position = Vec3.ZERO
+        this.isMove = false
+    }
+
+    public removeSelf(){
+        let self = this;
+        director.once(Director.EVENT_AFTER_DRAW,()=>{
+            self.mCar.getGame().removeCoinForList(this.node)
+            self.mCar.getGame().getPoolManager().putCoin(this.node)
+        })
+    }
+
+    public moveToTarget(target_pos:Vec3){
+        // this.node.getComponent(CircleCollider2D).enabled = false
+        this.node.getComponent(RigidBody2D).sleep()
+        tween(this.node).to(0.2,{position:target_pos}).call(this.removeSelf.bind(this)).start()
+    }
+
+    protected on_update(dt: number): void {
+        if(this.mCar.getXiStatus()&&!this.isMove){
+
+            let selfPos = this.node.parent.getComponent(UITransform).convertToWorldSpaceAR(this.node.position)
+            let dis = Vec3.distance(this.mCar.node.position, this.mCar.node.parent.getComponent(UITransform).convertToNodeSpaceAR(selfPos))
+
+            let carPos = this.mCar.node.parent.getComponent(UITransform).convertToWorldSpaceAR(this.mCar.node.position)
+
+            if(dis<=tools.game_config.buff_xi_range){
+                this.isMove = true
+                this.unschedule(this.on_update)
+                this.moveToTarget(this.node.parent.getComponent(UITransform).convertToNodeSpaceAR(carPos))
+            }
+        }
+    }
+
+}
+
+

+ 9 - 0
assets/script/game/coin.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "e6d46827-2e08-4c15-9e29-5499c444230f",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 373 - 0
assets/script/game/game.ts

@@ -0,0 +1,373 @@
+import { _decorator, BoxCollider2D, Collider2D, Color, Component, Contact2DType, director, Director, EventTouch, instantiate, IPhysics2DContact, Label, log, Node, Prefab, Rect, Sprite, SpriteFrame, Tween, UITransform, Vec2, Vec3 } from 'cc';
+import { tools } from '../tools';
+import { DirType, model_item_data } from '../data';
+import { run_level_item } from './run_level_item';
+import { car } from './car';
+import Coroutine from '../lib/Coroutine';
+import { results } from './results';
+import { buff_show } from './buff_show';
+import { pool } from './pool';
+import { box } from './box';
+import { Util } from '../util';
+import { wall } from './wall';
+import { Joystick } from './joystick';
+import { touch } from './touch';
+import { config } from '../config';
+import { coin } from './coin';
+const { ccclass, property } = _decorator;
+
+@ccclass('game')
+export class game extends Component {
+    @property(SpriteFrame) sfList:SpriteFrame[] = [];
+    @property(SpriteFrame) sfBuffList:SpriteFrame[] = [];
+    @property(BoxCollider2D) collider:BoxCollider2D = null;
+    @property(Node) car:Node = null;
+    @property(Node) content:Node = null;
+    @property(Prefab) prefab_item:Prefab = null;
+    @property(Node) results_view:Node = null;
+    @property(Node) lab_scores:Node = null;
+    @property(buff_show) bf_show:buff_show = null
+    @property(pool) game_pool_manager:pool = null
+    @property(Node) touch_node:Node = null
+    private mIndex:number = 0;
+    private mHeight:number = 0;
+    private start_pos:Vec3 = Vec3.ZERO;
+    private move_pos:Vec3 = Vec3.ZERO;
+    private is_move:boolean = false;
+    public offsetX:number = 0;
+    private gameBoxList:Node[] = []
+    private gameWallList:Node[] = []
+    private gameCoinList:Node[] = []
+    public show(){
+        this.removeAll()
+  
+        this.gameBoxList = []
+        this.gameWallList = []
+        this.gameCoinList = []
+        this.mHeight = 0
+        this.game_pool_manager.init()
+        this.bf_show.initView()
+        this.content.position = Vec3.ZERO
+        this.car.position = new Vec3(this.car.position.x,-300,this.car.position.z)
+        this.car.getComponent(car).init(this.content,this.onOver.bind(this),this.updateScores.bind(this),this)
+        for (let index = 0; index < 3; index++) {
+            this.addItem(index)
+        }
+        this.touch_node.getComponent(touch).init(this.car.getComponent(car))
+        this.mIndex = 2;
+        this.schedule(()=>{
+            if(this.node.active){
+                if(this.content.children.length<=5){
+                    this.mIndex++;
+                    if(this.mIndex>=tools.levels.length){
+                        this.mIndex = 1;
+                    }
+                    // Coroutine.instance.start(this, this.addItem, 0, 60, this.mIndex);
+                    this.addItem(this.mIndex)
+                }
+            }
+        },0.25)
+        this.collider.off(Contact2DType.END_CONTACT)
+        this.collider.on(Contact2DType.END_CONTACT,(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null)=>{
+            if(otherCollider.node.name.endsWith("run_level_item")){
+                this.deleteItem(otherCollider.node)
+            }
+        },this)
+
+    }
+
+    public getPoolManager(){
+        return this.game_pool_manager
+    }
+
+    public getBuffShowView(){
+        return this.bf_show
+    }
+
+    getOldDir(){
+        return this.move_pos
+    }
+
+    updateScores(scores:number){
+        this.lab_scores.getComponent(Label).string = "积分:"+scores +""
+    }
+
+    onOver(){
+        this.unscheduleAllCallbacks()
+        director.once(Director.EVENT_AFTER_DRAW,()=>{
+            this.removeAll()
+            this.results_view.getComponent(results).show(this.car.getComponent(car).getScores(),()=>{
+                this.show()
+            })
+        })
+   
+    }
+
+    removeAll(){
+        let temp_list = []
+        for (let index = 0; index < this.content.children.length; index++) {
+            const element = this.content.children[index];
+            if(element.name!="car"){
+                temp_list.push(element)
+            }
+        }
+        for (let index = 0; index < temp_list.length; index++) {
+            const element = temp_list[index];
+            element.removeFromParent()
+        }
+
+    }
+    deleteItem(node:Node){
+        director.once(Director.EVENT_AFTER_DRAW,()=>{
+            let index = this.content.children.indexOf(node)
+            if(index!=-1){
+                this.content.children[index].getComponent(run_level_item).removeAll()
+            }
+        })
+    }
+    addItem( index:number){
+        // yield Coroutine.createWaitForSecond(waitSecond);
+        let l:string[] = tools.levels[index].split(",")
+        let randomID = this.getRandomInt(0,l.length-1)
+
+        let item = instantiate(this.prefab_item)
+        item.parent = this.content
+        let id = parseInt(l[randomID])
+        // console.log("randomID",id,tools.levels[index],index)
+        let m_d:model_item_data = this.getModelDataById(id)
+        if(m_d==null){
+            console.error("m_d==null",id)
+            return 
+         }
+        item.position = new Vec3(0,this.mHeight)
+        this.mHeight+=m_d.height
+        this.car.setSiblingIndex(this.content.children.length)
+        item.getComponent(run_level_item).initView(m_d,this.sfList,this.sfBuffList,this.car.getComponent(car))
+    }
+
+    getRandomInt (min: number, max: number) {
+        let r: number= Math.random();
+        let rr: number= r * (max - min + 1) + min;
+        return Math.floor(rr);
+    }
+
+    getModelDataById(id:number){
+        for (let index = 0; index < tools.tpl_list.length; index++) {
+            const element = tools.tpl_list[index];
+            if(element.id===id){
+                return element
+            }
+        }
+        return null
+    }
+
+    addCoinForList(node:Node){
+        this.gameCoinList.push(node)
+    }
+
+    removeCoinForList(node:Node){
+        let index = this.gameCoinList.indexOf(node)
+        if(index!=-1){
+            this.gameCoinList.splice(index,1)
+        }
+    }
+
+    addBoxForList(node:Node){
+        this.gameBoxList.push(node)
+    }
+
+    removeBoxForList(node:Node){
+        let index = this.gameBoxList.indexOf(node)
+        if(index!=-1){
+            this.gameBoxList.splice(index,1)
+        }
+    }
+
+    addWallForList(node:Node){
+        this.gameWallList.push(node)
+    }
+
+    removeWallForList(node:Node){
+       let index = this.gameWallList.indexOf(node)
+       if(index!=-1){
+            this.gameWallList.splice(index,1)
+       }
+    }
+    move(){
+        // let info = this.joystick.getJoyInfo()
+        // if(info!=null){
+        //     this.car.getComponent(car).setDir(info.dir)
+        //     this.car.getComponent(car).setDis(info.dis)
+        // }
+    }
+
+    carCollider(car_rect:Rect){
+        let list = []
+        // console.log("this.gameBoxList",this.gameBoxList,this.gameWallList)
+        for (let index = 0; index < this.gameBoxList.length; index++) {
+            const box_node = this.gameBoxList[index];
+            if(box_node.parent){
+                let box_world = box_node.parent.getComponent(UITransform).convertToWorldSpaceAR(box_node.position)
+                let p = this.content.getComponent(UITransform).convertToNodeSpaceAR(box_world)
+                let width = box_node.getComponent(box).getData().w
+                let height = box_node.getComponent(box).getData().h
+                let rect = new Rect(p.x-width*0.5,p.y-height*0.5,width,height)
+                let dir = -1
+                if(car_rect.intersects(rect)){
+           
+                    let car_top_rect = new Rect(car_rect.xMin,car_rect.yMax-10,car_rect.width,20)
+                    let box_bottom_rect = new Rect(rect.xMin,rect.yMin,rect.width,10)
+                
+                    if(car_top_rect.intersects(box_bottom_rect)){
+                        dir = config.collider_dir.top
+                    }
+                    list.push({"node":box_node,"rect":rect,"type":0,"collider_dir":dir,"moveOffset":0})
+                }
+            }
+        }
+
+        for (let index = 0; index < this.gameWallList.length; index++) {
+            const box_node = this.gameWallList[index];
+            if(box_node.parent){
+                let box_world = box_node.parent.getComponent(UITransform).convertToWorldSpaceAR(box_node.position)
+                let p = this.content.getComponent(UITransform).convertToNodeSpaceAR(box_world)
+                let width = box_node.getComponent(wall).getData().w
+                let height = box_node.getComponent(wall).getData().h
+                let rect = new Rect(p.x-width*0.5,p.y-height*0.5,width,height)
+                let dir = -1
+                let offset = 0
+                if(car_rect.intersects(rect)){
+                    let car_top_rect = new Rect(car_rect.xMin,car_rect.yMax-5,car_rect.width,10)
+                    let box_bottom_rect = new Rect(rect.xMin,rect.yMin,rect.width,10)
+                    if(car_top_rect.intersects(box_bottom_rect)){
+                        dir = config.collider_dir.top
+                        if(box_bottom_rect.xMax>(car_top_rect.xMin+car_top_rect.width*0.5)){ //右边
+                            offset = (car_top_rect.width*0.5)
+                        }else{
+                            offset = (car_top_rect.width*-0.5)
+                        }
+                    }
+                    list.push({"node":box_node,"rect":rect,"type":1,"collider_dir":dir,"moveOffset":offset})
+                }
+            }
+        }
+
+        for (let index = 0; index < this.gameCoinList.length; index++) {
+            const box_node = this.gameCoinList[index];
+            if(box_node.parent){
+                let box_world = box_node.parent.getComponent(UITransform).convertToWorldSpaceAR(box_node.position)
+                let p = this.content.getComponent(UITransform).convertToNodeSpaceAR(box_world)
+                let width = box_node.getComponent(coin).getData().w
+                let height = box_node.getComponent(coin).getData().h
+                let rect = new Rect(p.x-width*0.5,p.y-height*0.5,width,height)
+                let dir = -1
+                let offset = 0
+                if(car_rect.intersects(rect)){
+                    list.push({"node":box_node,"rect":rect,"type":2,"collider_dir":dir,"moveOffset":offset})
+                }
+            }
+        }
+        return list
+    }
+
+
+    getLeftObstacles(car_rect:Rect){
+        let list:number[] = []
+        for (let index = 0; index < this.gameBoxList.length; index++) {
+            const box_node = this.gameBoxList[index];
+            if(box_node.parent){
+                let box_world = box_node.parent.getComponent(UITransform).convertToWorldSpaceAR(box_node.position)
+                let p = this.content.getComponent(UITransform).convertToNodeSpaceAR(box_world)
+                let width = box_node.getComponent(box).getData().w
+                let height = box_node.getComponent(box).getData().h
+                let rect = new Rect(p.x-width*0.5,p.y-height*0.5,width,height)
+                if(car_rect.xMin>=rect.xMax){
+                    if(new Rect(rect.x,car_rect.y,car_rect.width,car_rect.height).intersects(rect)){
+                        list.push(rect.xMax+car_rect.width*0.5)
+                        // box_node.active = false
+                    }
+                }
+             
+            }
+        }
+
+
+        for (let index = 0; index < this.gameWallList.length; index++) {
+            const box_node = this.gameWallList[index];
+            if(box_node.parent){
+                let box_world = box_node.parent.getComponent(UITransform).convertToWorldSpaceAR(box_node.position)
+                let p = this.content.getComponent(UITransform).convertToNodeSpaceAR(box_world)
+                let width = box_node.getComponent(wall).getData().w
+                let height = box_node.getComponent(wall).getData().h
+                let rect = new Rect(p.x-width*0.5,p.y-height*0.5,width,height)
+                if(car_rect.xMin>=rect.xMax){
+                    if(new Rect(rect.x,car_rect.y,car_rect.width,car_rect.height).intersects(rect)){
+                        list.push(rect.xMax+car_rect.width*0.5)
+                        // box_node.active = false
+                    }
+                }
+             
+            }
+        }
+        if(list.length<=0){
+            return null
+        }
+        list.sort((a,b)=>{
+            return b-a
+        })
+        // console.log("list",list)
+        return list[0]
+    }
+
+    getRightObstacles(car_rect:Rect){
+        let list:number[] = []
+        for (let index = 0; index < this.gameBoxList.length; index++) {
+            const box_node = this.gameBoxList[index];
+            if(box_node.parent){
+                let box_world = box_node.parent.getComponent(UITransform).convertToWorldSpaceAR(box_node.position)
+                let p = this.content.getComponent(UITransform).convertToNodeSpaceAR(box_world)
+                let width = box_node.getComponent(box).getData().w
+                let height = box_node.getComponent(box).getData().h
+                let rect = new Rect(p.x-width*0.5,p.y-height*0.5,width,height)
+                if(car_rect.xMax<=rect.xMin){
+                    if(new Rect(rect.x,car_rect.y,car_rect.width,car_rect.height).intersects(rect)){
+                        list.push(rect.xMin-car_rect.width*0.5)
+                    }
+                }
+             
+            }
+        }
+
+
+        for (let index = 0; index < this.gameWallList.length; index++) {
+            const box_node = this.gameWallList[index];
+            if(box_node.parent){
+                let box_world = box_node.parent.getComponent(UITransform).convertToWorldSpaceAR(box_node.position)
+                let p = this.content.getComponent(UITransform).convertToNodeSpaceAR(box_world)
+                let width = box_node.getComponent(wall).getData().w
+                let height = box_node.getComponent(wall).getData().h
+                let rect = new Rect(p.x-width*0.5,p.y-height*0.5,width,height)
+                if(car_rect.xMax<=rect.xMin){
+                    if(new Rect(rect.x,car_rect.y,car_rect.width,car_rect.height).intersects(rect)){
+                        list.push(rect.xMin-car_rect.width*0.5)
+                        //    box_node.active = false
+                    }
+                }
+             
+            }
+        }
+        if(list.length<=0){
+            return null
+        }
+        list.sort((a,b)=>{
+            return a-b
+        })
+        return list[0]
+    }
+    changeMovePos(){
+   
+    }
+
+}
+
+

+ 9 - 0
assets/script/game/game.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "ffdb8844-0605-46c8-934d-c0cfead28237",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 311 - 0
assets/script/game/joystick.ts

@@ -0,0 +1,311 @@
+
+import { _decorator, Component, Node, Enum, EventTouch, UITransformComponent, Vec3, view, UITransform, Vec2 } from "cc";
+import { config } from "../config";
+import { DirType } from "../data";
+import { car } from "./car";
+
+const { ccclass, property } = _decorator;
+
+//触摸类型
+const TOUCH_TYPE = Enum({
+    DEFAULT: 0,//按钮和背景距离不变,背景位置与触碰点一致,不可改变按钮背景位置,按钮背景随着按钮移动而移动,松手后无法恢复到初始位置
+    FOLLOW: 1,//按钮和背景距离不变,背景位置与触碰点一致,不可改变按钮背景位置,按钮背景随着按钮移动而移动,松手后恢复到初始位置
+    FOLLOW_ALWAYS: 2, //按钮和背景距离不变,背景位置与触碰点一致,可改变按钮背景位置,按钮背景随着按钮移动而移动,松手后恢复到初始位置
+    FOLLOW_DOT: 3 //按钮和背景距离可改变,按钮位置与触碰点可不一致,不可改变按钮背景位置,按钮背景不随着按钮移动而移动,松手后恢复到初始位置
+});
+
+//方向
+const DIRECTION_TYPE = Enum({
+    FOUR: 4,
+    EIGHT: 8,
+    ALL: 0,
+});
+
+const screenHeight = view.getVisibleSize().height;//屏幕可视范围高度
+
+@ccclass("Joystick")
+export class Joystick extends Component {
+    @property({type: Node, displayName: '摇杆背景节点'})
+    public ndRing: Node = null!;
+
+    @property({type: Node, displayName: '摇杆节点'})
+    public ndDot: Node = null!;
+
+    @property({type: TOUCH_TYPE, displayName: '触摸类型'})
+    public touchType = TOUCH_TYPE.DEFAULT;
+
+    @property({type: DIRECTION_TYPE, displayName: '方向类型'})
+    public directionType = DIRECTION_TYPE.ALL;
+
+    @property({displayName: '启动半透明'})
+    public isEnableTransparent: boolean = false;
+
+    @property({displayName: '点击跟随'})
+    public isFollowStart: boolean = false;
+
+    @property({displayName: '内圈大小'})
+    public innerSize: number = 10;
+
+    @property(Node) spr_dun:Node = null;
+
+
+    public onClickCb: Function = null!;
+    public onEndCb: Function = null!;
+    public clearFECb: Function = null!;
+    public onBeginFECb: Function = null!;
+    public onSuccessFECb: Function = null!;
+    public isMoving: boolean = false;//是否正在移动
+    private mCar:car = null
+
+    private mDir:DirType = DirType.NONE
+
+    public get distanceRate () {
+        return this._distanceRate;
+    }
+
+    public get angle () {
+        return this._angle;
+    }
+
+    public set angle (v: number) {
+        this._angle = v;
+    }
+
+    private _angle: number = 0;//当前的角度
+    private _oriRingPos: Vec3 = null!;//圆圈初始位置
+    private _targetRingPos: Vec3 = new Vec3();//圆圈背景位置
+    private _touchStartLocation: Vec3 = new Vec3();//开始触碰位置
+    private _touchMoveLocation: Vec3 = new Vec3();//移动触碰位置
+    private _touchEndLocation: Vec3 = new Vec3();//结束触碰位置
+    private _isOutInnerSize: Boolean = false;//终点拖动的点是否超出按钮圆圈背景
+    private _distanceRate: number = 0; //遥感移动距离比
+    private _checkInterval: number = 0.04;//每40ms刷新一次
+    private _oldAngle: number = 0;//之前的角度
+    private _oldDotPos: number = 0;
+    private _currentTime: number = 0;//当前累积时间
+    private _oriDotPos: Vec3 = new Vec3();//中间按钮初始坐标
+    private _movePos: Vec3 = new Vec3();//移动坐标
+    private _curRingPos_1: Vec3 = new Vec3();//当前圆圈坐标
+    private _curRingPos_2: Vec3 = new Vec3();//
+    private _origin_pos:Vec3 = Vec3.ZERO
+    private mCallBack = null;
+    start () {
+        // Your initialization goes here.
+    }
+
+    public init(call_back,car:car)
+    {
+        this.mCar = car
+        this.mCallBack = call_back
+        this.node.on(Node.EventType.TOUCH_START, this._touchStartEvent, this);
+        this.node.on(Node.EventType.TOUCH_MOVE, this._touchMoveEvent, this);
+
+        // 触摸在圆圈内离开或在圆圈外离开后,摇杆归位,player速度为0
+        this.node.on(Node.EventType.TOUCH_END, this._touchEndEvent, this);
+        this.node.on(Node.EventType.TOUCH_CANCEL, this._touchEndEvent, this);
+    }
+
+    public unInit(){
+        this.node.off(Node.EventType.TOUCH_START, this._touchStartEvent, this);
+        this.node.off(Node.EventType.TOUCH_MOVE, this._touchMoveEvent, this);
+
+        // 触摸在圆圈内离开或在圆圈外离开后,摇杆归位,player速度为0
+        this.node.off(Node.EventType.TOUCH_END, this._touchEndEvent, this);
+        this.node.off(Node.EventType.TOUCH_CANCEL, this._touchEndEvent, this);
+
+        //重置
+        this.isMoving = false;
+        this.ndDot.setPosition(this._oriDotPos);
+        this._origin_pos = this._oriDotPos
+        if (this._oriRingPos) {
+            this.ndRing.setPosition(this._oriRingPos);
+        }
+    }
+
+    private _touchStartEvent (event: EventTouch) {
+        // 记录触摸的世界坐标,给touch move使用
+        // this.dot.opacity = 255;
+        this._targetRingPos = null!;
+
+        let touch = event.getUILocation();
+        this._touchStartLocation.set(touch.x, touch.y, 0);
+        let touchPos = this.node.getComponent(UITransformComponent)?.convertToNodeSpaceAR(this._touchStartLocation) as Vec3;
+
+        if (!this._oriRingPos) {
+            this._oriRingPos = this.ndRing.getPosition().clone();
+        }
+
+        // 记录摇杆位置,给touch move使用
+        // this._stickPos.set(touchPos);
+
+        this._isOutInnerSize = false;
+
+        if (!this.isFollowStart) {
+            touchPos = this.ndRing.getComponent(UITransformComponent)?.convertToNodeSpaceAR(this._touchStartLocation) as Vec3;
+
+            //触摸点与圆圈中心的距离
+            let distance = touchPos.length();
+            let width = this.ndRing.getComponent(UITransformComponent)?.contentSize.width as number;
+            //圆圈半径
+            let radius = width / 2;
+            
+            //手指在圆圈内触摸,控杆跟随触摸点
+            if (radius > distance) {
+                this.ndDot.setPosition(touchPos);
+                this._updateAngle(touchPos);
+                return true;
+            }
+            return false;
+
+        } else  {
+            //设置遥感可移动范围
+            if (this.touchType === TOUCH_TYPE.FOLLOW) {
+                touchPos.y = touchPos.y >= -screenHeight/6 ? -screenHeight/6 : touchPos.y;
+            } 
+
+            this.ndRing.setPosition(touchPos);
+        }
+    }
+
+    private _touchMoveEvent (event: EventTouch) {
+        let touch = event.getUILocation();
+        this._touchMoveLocation.set(touch.x, touch.y, 0);
+        let touchPos = this.ndRing.getComponent(UITransformComponent)?.convertToNodeSpaceAR(this._touchMoveLocation) as Vec3;
+
+        // if (this.touchType === TOUCH_TYPE.FOLLOW) {
+        //     let offsetPos = cc.v3(touchPos.x - this._stickPos.x, touchPos.y - this._stickPos.y, 0);
+        //     touchPos = offsetPos;
+        // }
+
+        let dir_type = DirType.NONE
+        if(touchPos.x>this.ndDot.position.x){
+            dir_type = DirType.RIGHT
+        }else if(touchPos.x<this.ndDot.position.x){
+            dir_type = DirType.LEFT
+        }
+
+        this.mDir = dir_type
+        if(this.mDir!=dir_type){
+            this._origin_pos = this.ndDot.position
+        }
+        let distance = touchPos.length();
+
+        if (distance > this.innerSize) {
+            this.isMoving = true;
+            this._isOutInnerSize = true;
+        } else {
+            this._isOutInnerSize = false;
+        }
+
+
+        let width = this.ndRing.getComponent(UITransformComponent)?.contentSize.width as number;
+        //圆圈半径
+        let radius = width / 2;
+        let rate = 0;
+        // 由于摇杆的postion是以父节点为锚点,所以定位要加上ring和dot当前的位置(stickX,stickY)
+        if (radius > distance) {
+            rate = Number((distance / radius).toFixed(3));
+            this.ndDot.setPosition(touchPos);
+        }
+        else if (this.touchType !== TOUCH_TYPE.FOLLOW_DOT) {
+            rate = 1;
+            //控杆永远保持在圈内,并在圈内跟随触摸更新角度
+            let radian = Math.atan2(touchPos.y, touchPos.x);
+            
+            let x = Math.cos(radian) * radius;
+            let y = Math.sin(radian) * radius;
+            this._movePos.set(x, y, 0);
+            if (this.touchType === TOUCH_TYPE.FOLLOW_ALWAYS) {
+                this._curRingPos_2.set(touch.x - x, touch.y - y, 0);
+                let ringPos = this.node.getComponent(UITransformComponent)?.convertToNodeSpaceAR(this._curRingPos_2) as Vec3;
+                this._targetRingPos = ringPos;
+            }
+            this.ndDot.setPosition(this._movePos);
+        } else { 
+            // 点跟随移动
+            this.ndDot.setPosition(touchPos);
+        }
+        //更新角度
+        this._updateAngle(touchPos);
+        //更新遥感移动距离百分比
+        this._distanceRate = rate;
+    }
+
+    private _touchEndEvent (event: EventTouch) {
+        if (!this.isMoving) {
+            //可以判断为点击
+            this.onClickCb && this.onClickCb();
+        } else {
+            let touch = event.getUILocation();
+            this._touchEndLocation.set(touch.x, touch.y, 0);
+            let touchPos = this.ndRing.getComponent(UITransformComponent)?.convertToNodeSpaceAR(this._touchEndLocation) as Vec3;
+            let isDragToInner = false;
+            if (touchPos.length() < this.innerSize) {
+                //取消掉
+                isDragToInner = true;
+                
+                this.onEndCb && this.onEndCb(isDragToInner);
+                
+            } else {
+                this.onEndCb && this.onEndCb(isDragToInner);
+            }
+        }
+
+        this.isMoving = false;
+        this.mDir = DirType.NONE
+        this.ndDot.setPosition(this._oriDotPos);
+        this._origin_pos = this._oriDotPos
+        if (this.touchType === TOUCH_TYPE.FOLLOW || this.touchType === TOUCH_TYPE.FOLLOW_ALWAYS || this.touchType === TOUCH_TYPE.FOLLOW_DOT) {
+            this._targetRingPos = null!;
+            this.ndRing.setPosition(this._oriRingPos);
+        }
+    }
+
+    private _updateAngle (pos: Vec3) {
+        this._angle = Math.round(Math.atan2(pos.y, pos.x) * 180 / Math.PI);
+        return this._angle;
+    }
+
+    public reset () {
+        this.isMoving = false;
+        this._origin_pos = this._oriDotPos
+        this.ndDot.setPosition(this._oriDotPos);
+    }
+
+    public getJoyInfo(){
+        this.mCar.setDir(this.mDir)
+        console.log("this.mDir",this.mDir)
+        this.mCar.setMoveSpeedX(Math.abs(this.ndDot.position.x-this._origin_pos.x)/130*50)
+    }
+
+    update (deltaTime: number) {
+        // Your update function goes here.
+
+        //设置终终点按钮位置
+        // if (this._targetRingPos) {
+        //     this._curRingPos_1.set(0, 0, 0);
+        //     Vec3.lerp(this._curRingPos_1, this.ndRing.position, this._targetRingPos, 20 * deltaTime);
+
+        //     this.ndRing.setPosition(this._curRingPos_1);
+        // }
+
+        this._currentTime += deltaTime;
+        if (this._currentTime >= this._checkInterval) {
+            this._currentTime = 0;
+
+            if (this.isMoving) {
+                if (this.angle !== this._oldAngle) {
+                    this._oldAngle = this.angle;
+                }
+            } else {
+                this.isMoving = false;
+            }
+            if(this.mCallBack !=null ){
+                this.mCallBack()
+            }
+
+            this._oldDotPos = this.ndDot.position.x
+            this.getJoyInfo()
+        }
+    }
+}

+ 9 - 0
assets/script/game/joystick.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "f6beee35-d440-40d2-9304-f8266ac2115a",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 94 - 0
assets/script/game/pool.ts

@@ -0,0 +1,94 @@
+import { _decorator, Component, instantiate, Node, NodePool, Prefab } from 'cc';
+import { box } from './box';
+import { coin } from './coin';
+import { wall } from './wall';
+const { ccclass, property } = _decorator;
+
+@ccclass('pool')
+export class pool extends Component {
+    @property(Prefab) box_pf:Prefab = null;
+    @property(Prefab) coin_pf:Prefab = null;
+    @property(Prefab) wall_pf:Prefab = null;
+
+    private box_pool:NodePool = null;
+    private coin_pool:NodePool = null;
+    private wall_pool:NodePool = null;
+    private pool_num:number = 50;
+    public init(){
+        if(this.box_pool==null){
+            this.box_pool = new NodePool(box);
+            this.coin_pool = new NodePool(coin);
+            this.wall_pool = new NodePool(wall);
+            for (let index = 0; index < this.pool_num; index++) {
+           
+                this.box_pool.put(instantiate(this.box_pf));
+    
+                this.coin_pool.put(instantiate(this.coin_pf));
+    
+                this.wall_pool.put(instantiate(this.wall_pf));
+            }
+
+            this.schedule(()=>{
+                if(this.box_pool.size()<this.pool_num){
+                    let box = instantiate(this.box_pf);
+                    this.box_pool.put(box);
+                }
+                if(this.coin_pool.size()<this.pool_num){
+                    const coin = instantiate(this.coin_pf);
+                    this.coin_pool.put(coin);
+                }
+                if(this.wall_pool.size()<this.pool_num){
+                    const wall = instantiate(this.wall_pf);
+                    this.wall_pool.put(wall);
+                }
+            },0.5)
+        }
+    }
+
+    public getBoxPool():NodePool{
+        return this.box_pool
+    }
+
+    public getCoinPool():NodePool{
+        return this.coin_pool
+    }
+
+    public getWallPool():NodePool{
+        return this.wall_pool
+    }
+
+    public putBox(node:Node){
+        this.box_pool.put(node)
+    }
+    public putCoin(node:Node){
+        this.coin_pool.put(node)
+    }
+    public putWall(node:Node){
+        this.wall_pool.put(node)
+    }
+    public getBox(){
+        if(this.box_pool.size()<=0){
+            let node = instantiate(this.box_pf)
+            this.box_pool.put(node)
+        }
+        return this.box_pool.get()
+    }
+
+    public getCoin(){
+        if(this.coin_pool.size()<=0){
+            let node = instantiate(this.coin_pf)
+            this.coin_pool.put(node)
+        }
+        return this.coin_pool.get()
+    }
+
+    public getWall(){
+        if(this.wall_pool.size()<=0){
+            let node = instantiate(this.wall_pf)
+            this.wall_pool.put(node)
+        }
+        return this.wall_pool.get()
+    }
+}
+
+

+ 9 - 0
assets/script/game/pool.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "d08deb83-ed85-4d88-9927-9279fcd8e388",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 42 - 0
assets/script/game/results.ts

@@ -0,0 +1,42 @@
+import { _decorator, Component, Label, Node } from 'cc';
+import { http } from '../http';
+import { config } from '../config';
+const { ccclass, property } = _decorator;
+
+@ccclass('results')
+export class results extends Component {
+    @property(Node) btn_restart:Node = null
+    @property(Node) lab_scores:Node = null
+    private call_back = null
+    start() {
+        this.btn_restart.on(Node.EventType.TOUCH_END,()=>{
+            if(this.call_back!=null){
+                this.call_back()
+                this.close()
+            }
+        })
+    }
+
+    private close(){
+        this.node.active = false;
+    }
+
+
+    public show(scores:number,call){
+        http.post(config.API.sync_integral,{"integral":scores},(err,data)=>{
+            if(!err){
+                console.log("data",data)
+                // http.get(config.STATIC_API.regions,(e,d)=>{
+                //     console.log("regions",d)
+                // })
+
+                http.get(config.STATIC_API.rankings(0),(err,data)=>{
+                    console.log("rankings",data)
+                })
+            }
+        })
+        this.node.active = true
+        this.lab_scores.getComponent(Label).string = "积分:"+ scores+""
+        this.call_back = call
+    }
+}

+ 9 - 0
assets/script/game/results.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "c7f4bdba-dc99-4e73-8a04-79321cea00cd",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 77 - 0
assets/script/game/run_level_item.ts

@@ -0,0 +1,77 @@
+import { _decorator, Collider2D, Component, Contact2DType, Director, director, instantiate, IPhysics2DContact, Node, Prefab, RigidBody2D, Size, Sprite, SpriteFrame, UITransform, Vec3 } from 'cc';
+import { model_item_data } from '../data';
+import { config } from '../config';
+import { box } from './box';
+import { coin } from './coin';
+import { wall } from './wall';
+import Coroutine from '../lib/Coroutine';
+import { tools } from '../tools';
+import { car } from './car';
+import { base } from './base';
+const { ccclass, property } = _decorator;
+
+@ccclass('run_level_item')
+export class run_level_item extends Component {
+    private mData:model_item_data = null;
+    private sfList:SpriteFrame[] = [];
+    private sfBuffList:SpriteFrame[] = [];
+    private mCar:car = null;
+    public initView(data:model_item_data,l:SpriteFrame[],bl:SpriteFrame[],car:car){
+        this.mData = data
+        this.mCar = car
+        this.sfList = l
+        this.sfBuffList = bl
+        this.node.getComponent(UITransform).contentSize = new Size(this.mData.width,this.mData.height)
+        for (let index = 0; index < data.list.length; index++) {
+            const element = data.list[index];
+            // Coroutine.instance.start(this, this.init, 0.2, 0, element);
+            this.init(element)
+        }
+
+    }
+
+    private  init(element){
+        let node:Node = null;
+        if(tools.isBox(element.item_type)){
+            node = this.mCar.getGame().getPoolManager().getBox()
+            node.getComponent(box).init(element, this.sfList[element.item_type-1],element.buff_type>0?this.sfBuffList[element.buff_type-1]:null,this.mCar)
+            this.mCar.getGame().addBoxForList(node)
+        }else if(element.item_type==config.item_type.coin){
+            node = this.mCar.getGame().getPoolManager().getCoin()
+            node.getComponent(coin).init(element,this.mCar)
+            this.mCar.getGame().addCoinForList(node)
+        }else if(element.item_type==config.item_type.wall){
+            node = this.mCar.getGame().getPoolManager().getWall()
+            node.getComponent(wall).init(element)
+            this.mCar.getGame().addWallForList(node)
+        }
+        if(node!=null){
+            node.parent = this.node
+        }
+        
+    }
+
+    public removeAll(){
+        this.node.getComponent(RigidBody2D).sleep()
+        for (let index = 0; index < this.node.children.length; index++) {
+            const node = this.node.children[index];
+            let element = node.getComponent(base).getData()
+            if(tools.isBox(element.item_type)){
+                node.getComponent(box).removeSelf()
+            }else if(element.item_type==config.item_type.coin){
+                node.getComponent(coin).removeSelf()
+            }else if(element.item_type==config.item_type.wall){
+                this.mCar.getGame().removeWallForList(node)
+                this.mCar.getGame().getPoolManager().putWall(node)
+            }
+        }
+        // director.once(Director.EVENT_AFTER_DRAW,()=>{
+        //     this.node.destroy()
+        // })
+        this.node.removeFromParent()
+    
+    }
+
+}
+
+

+ 9 - 0
assets/script/game/run_level_item.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "67caceb3-f9bd-49a7-a911-c2f64dcf1c48",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 113 - 0
assets/script/game/touch.ts

@@ -0,0 +1,113 @@
+import { _decorator, Color, Component, EventTouch, Node, Rect, Sprite, Tween, tween, UITransform, Vec2, Vec3 } from 'cc';
+import { DirType } from '../data';
+import { car } from './car';
+const { ccclass, property } = _decorator;
+
+@ccclass('touch')
+export class touch extends Component {
+    private start_node:Vec2 = null
+    private end_node:Vec2 = null
+    private mDir:DirType = DirType.NONE
+    private mCar:car = null
+    private CurTouchId:number = -1;
+    public init(car:car){
+        this.mCar = car
+    }
+    start() {
+        this.node.on(Node.EventType.TOUCH_START,(et:EventTouch)=>{
+            // let n = this.getClickPos(et.getUILocation().x)
+            // if(n!=null){
+            //     n.getComponent(Sprite).color = Color.RED
+            //     this.start_node = n
+            // }
+            this.start_node = et.getUILocation()
+        },this)
+
+        this.node.on(Node.EventType.TOUCH_MOVE,(et:EventTouch)=>{
+            if(this.CurTouchId!=-1&&this.CurTouchId!=et.getID()){
+                return
+            }
+            this.CurTouchId = et.getID()
+            if(this.start_node!=null){
+                // let n = this.getClickPos(et.getUILocation().x)
+                // if(n!=null&&n!=this.start_node){
+                //     n.getComponent(Sprite).color = Color.RED
+                //     Tween.stopAllByTarget(this.end_node)
+                //     this.end_node = n
+
+                //     this.reset()
+                //     this.end_node.getComponent(Sprite).color = Color.YELLOW
+                //     // this.end_node = null
+                //     this.moveDis()
+                
+                // }
+                this.end_node = et.getUILocation()
+                this.moveDis()
+            }
+        },this)
+
+        this.node.on(Node.EventType.TOUCH_END,this._touchEndEvent.bind(this),this)
+
+        this.node.on(Node.EventType.TOUCH_CANCEL,this._touchEndEvent.bind(this),this)
+    }
+
+    moveDis(){
+        let dis = Vec2.distance(this.start_node,this.end_node)
+        let dir = DirType.NONE
+        if(this.end_node.x>this.start_node.x){
+            dir = DirType.RIGHT
+        }else if(this.end_node.x<this.start_node.x){
+            dir = DirType.LEFT
+        }
+        let isChangeDir = false
+        if(this.mDir!=dir){
+            this.mDir = dir
+            isChangeDir = true
+        }
+
+        this.mCar.setDir(this.mDir)
+        this.mCar.setDisDir(dis)
+
+        // if(isChangeDir){
+        this.start_node = this.end_node
+        // }else{
+        //     tween(this.end_node).delay(0.01).call(()=>{
+        //         this.start_node = this.end_node
+        //     }).start()
+        // }
+
+        // console.log("moveDis",dis, this.mDir)
+    }
+
+    reset(){
+        // this.start_node = null
+        let list = this.node.children
+        for (let index = 0; index < list.length; index++) {
+            const element = list[index];
+            element.getComponent(Sprite).color = Color.WHITE
+        }
+    }
+
+    getClickPos(x:number){
+        let list = this.node.children
+        for (let index = 0; index < list.length; index++) {
+            const element = list[index];
+            let rect = element.getComponent(UITransform).getBoundingBox()
+            if(rect.contains(new Vec2(x,rect.yMin))){
+                return element
+            }
+        }
+        return null
+    }
+
+    _touchEndEvent(et:EventTouch){
+        this.CurTouchId = -1;
+        this.mDir = DirType.NONE
+        this.mCar.setDir(this.mDir)
+    }
+    update(deltaTime: number) {
+        
+    }
+}
+
+

+ 9 - 0
assets/script/game/touch.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "7e4b3cb1-dc2c-4272-94e5-8a35499bdce0",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 20 - 0
assets/script/game/wall.ts

@@ -0,0 +1,20 @@
+import { _decorator, BoxCollider2D, CircleCollider2D, Component, Label, Node, Size, UITransform, Vec2, Vec3 } from 'cc';
+import { model_content_item_data } from '../data';
+import { base } from './base';
+const { ccclass, property } = _decorator;
+
+@ccclass('wall')
+export class wall extends base {
+    public init(data:model_content_item_data){
+        this.mData = data
+        this.node.position = new Vec3(this.mData.x,this.mData.y,this.node.position.z)
+        this.node.getComponent(UITransform).contentSize = new Size(this.mData.w,this.mData.h)
+        this.node.getComponent(BoxCollider2D).size = new Size(this.mData.w,this.mData.h)
+    }
+
+    protected ReSetNode(){
+        this.node.position = Vec3.ZERO
+    }
+}
+
+

+ 9 - 0
assets/script/game/wall.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "2b3f7f65-1feb-4145-96f2-fc136d93a0ed",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 87 - 0
assets/script/http.ts

@@ -0,0 +1,87 @@
+import { _decorator, Component, Node, sys } from 'cc';
+import { config } from './config';
+import { tools } from './tools';
+import { userDataManager } from './manager/userDataManager';
+const { ccclass, property } = _decorator;
+@ccclass('http')
+export class http {
+    public static static_domain =  "https://zcapi.xwrun.com"
+    public static statistics_domain =  "https://zcapi.xwrun.com"
+    public static post(url,opt, call_back) {
+        var xml = new XMLHttpRequest()
+        let request_url = http.static_domain+url
+        xml.open('POST',  request_url)
+        xml.setRequestHeader('Content-Type', 'application/json');
+        if(userDataManager.user_data!=null){
+            xml.setRequestHeader('token',userDataManager.user_data.token);
+        }
+        xml.send(JSON.stringify(opt));
+        // xml.send(opt);
+        var array: String[] = ['loadstart', 'abort', 'error', 'load', 'loadend', 'timeout'];
+        array.forEach(function (eventName) {
+            xml[('on' + eventName) as 'onloadstart' | 'onabort' | 'onerror' | 'onload' | 'onloadend' | 'ontimeout'] = function () {
+                //    var str =  '\nEvent : ' + eventName;
+                var lstr = ""
+                if (eventName === 'timeout') {
+                    lstr += '(timeout)';
+                }
+                else if (eventName === 'loadend') {
+                    lstr += '...loadend!';
+
+                } else if (eventName === 'onerror') {
+
+                }
+            };
+        });
+
+        // Special event
+        xml.onreadystatechange = function () {
+            if (xml.readyState === 4 && xml.status >= 200) {
+                call_back(null, xml.responseText);
+            } else if (xml.status === 404) {
+                call_back('404 page not found!', null);
+            }
+        };
+    }
+
+    public static get(url, call_back) {
+        var xml = new XMLHttpRequest()
+        let request_url = http.static_domain+url
+        xml.open('GET', request_url)
+        xml.setRequestHeader('Content-Type', 'application/json');
+        xml.send();
+
+        var array: String[] = ['loadstart', 'abort', 'error', 'load', 'loadend', 'timeout'];
+        array.forEach(function (eventName) {
+            xml[('on' + eventName) as 'onloadstart' | 'onabort' | 'onerror' | 'onload' | 'onloadend' | 'ontimeout'] = function () {
+                //    var str =  '\nEvent : ' + eventName;
+                var lstr = ""
+                if (eventName === 'timeout') {
+                    lstr += '(timeout)';
+                }
+                else if (eventName === 'loadend') {
+                    lstr += '...loadend!';
+
+                } else if (eventName === 'onerror') {
+
+                }
+            };
+        });
+
+        // Special event
+        xml.onreadystatechange = function () {
+            if (xml.readyState === 4 && xml.status >= 200) {
+                call_back(null, xml.responseText);
+            } else if (xml.status === 404) {
+                call_back('404 page not found!', null);
+            }
+        };
+    }
+
+   
+
+   
+
+}
+
+

+ 9 - 0
assets/script/http.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "fd8782ed-4d0c-4fa9-aa4b-16b6037a5e81",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/lib.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "0b612b13-9100-4682-93dc-5493756dae04",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 196 - 0
assets/script/lib/Coroutine.ts

@@ -0,0 +1,196 @@
+
+import { Component, Director, director, isValid } from 'cc';
+declare type GeneratorFunc = (...args: any[]) => Generator<any, any, any>
+declare type GeneratorRecord = { generator: Generator<any, any, any>, gfunc?: GeneratorFunc, comp?: Component, waiter?: IWaiter };
+
+interface IWaiter {
+    isOver(dt: number): boolean;
+}
+
+class WaitForSecond implements IWaiter {
+    private _endTime: number = 0;
+    private _currTime: number = 0;
+
+    constructor(endTime: number) {
+        this._endTime = endTime;
+    }
+
+    isOver(dt: number) {
+        this._currTime += dt;
+
+        return this._currTime >= this._endTime;
+    }
+}
+
+class WaitForFrame implements IWaiter {
+    private _frameCount: number = 0;
+    private _frame: number = 0;
+    constructor(frameCount: number) {
+        this._frameCount = frameCount;
+    }
+
+    isOver(dt: number) {
+        return this._frame++ >= this._frameCount;
+    }
+}
+
+export default class Coroutine {
+
+    private static _instance: Coroutine = null;
+    static get instance() {
+        if (Coroutine._instance == null) {
+            Coroutine._instance = new Coroutine();
+        }
+        return Coroutine._instance;
+    }
+
+    /**等待多少秒 */
+    static createWaitForSecond(sec: number) {
+        return new WaitForSecond(sec);
+    }
+    /**等待多少帧 */
+    static createWaitForFrame(frameCount: number) {
+        return new WaitForFrame(frameCount);
+    }
+
+    private _mapCoroutine: Map<any, GeneratorRecord[]> = new Map();
+    private _getTimmer: () => number = null;
+    private _lastTime: number = 0;
+
+    private constructor() {
+        if (typeof window?.performance?.now !== 'function') {
+            this._getTimmer = () => {
+                return new Date().getTime();
+            }
+        } else {
+            this._lastTime = window.performance.now();
+            this._getTimmer = () => window.performance.now();
+        }
+    }
+
+    /**@summary start coroutiine
+     * @param component cc component
+     * @param func generator func or string
+     * @param args your funcion params
+    */
+    start(component: Component, func: GeneratorFunc | string, ...args: any[]) {
+        if (!(component instanceof Component)) {
+            throw Error('component must a component');
+        }
+        const mapData: GeneratorRecord = {
+            generator: null,
+            comp: component
+        };
+        if (typeof func === 'string') {
+            const gf: GeneratorFunc = (<any>component)[func];
+            const generator = gf.call(component, ...args);
+            if (typeof generator?.next === 'function') {
+                mapData.generator = generator;
+                mapData.gfunc = (<any>component)[func];
+            } else {
+                throw Error(func + ' is not a GeneratorFunction !!!');
+            }
+        } else {
+            mapData.gfunc = func;
+            mapData.generator = func.call(component, ...args);
+        }
+        const _processCount = this._mapCoroutine.size;
+        if (mapData.generator) {
+            const list = this._mapCoroutine.get(component);
+            if (!list) {
+                this._mapCoroutine.set(component, [mapData]);
+            } else {
+                list.push(mapData);
+            }
+        }
+        if (_processCount == 0 && this._mapCoroutine.size > 0) {
+            this._lastTime = this._getTimmer();
+            director.on(Director.EVENT_AFTER_UPDATE, this._update, this);
+        }
+    }
+
+    /**@summary stop coroutiine
+     * @param component cc component
+     * @param func if no input, that will stop all coroutine of component;
+    */
+    stop(component: Component, func?: GeneratorFunc | string) {
+        if (!func) {
+            this._mapCoroutine.delete(component);
+        } else {
+            const list = this._mapCoroutine.get(component);
+            if (!list) return;
+            let deleteIds: number[] = [];
+            for (let i = 0; i < list.length; ++i) {
+                if (!list[i]) {
+                    list[i] = null;
+                    deleteIds.push(i);
+                }
+                else if (typeof func === 'string' && list[i].gfunc === (<any>component)[func]) {
+                    list[i] = null;
+                    deleteIds.push(i);
+                } else if (list[i].gfunc == func) {
+                    list[i] = null;
+                    deleteIds.push(i);
+                }
+            }
+            if (deleteIds.length >= list.length) {
+                this._mapCoroutine.delete(component);
+                return;
+            } else if (deleteIds.length >= 2) {
+                this._mapCoroutine.set(component, list.filter((e) => !!e));
+            } else if (deleteIds.length == 1) {
+                list.splice(deleteIds[0], 1);
+            }
+        }
+
+
+    }
+
+    private _update() {
+        const dt = (this._getTimmer() - this._lastTime) / 1000;
+        this._mapCoroutine.forEach((gr, k) => {
+            let deleteIds: number[] = [];
+            let count = gr.length;
+            for (let i = 0; i < count; ++i) {
+                if (!(gr && isValid(gr[i]?.comp?.node, true))) {
+                    deleteIds.push(i);
+                    gr[i] = null;
+                } else {
+                    if (gr[i].waiter) {
+                        if (!gr[i].waiter.isOver(dt)) {
+                            continue;
+                        }
+                    }
+                    const it = gr[i].generator.next();
+                    if (it.value instanceof WaitForSecond) {
+                        if (!it.value.isOver(dt)) {
+                            gr[i].waiter = it.value;
+                            continue;
+                        }
+                    } else if (it.value instanceof WaitForFrame) {
+                        gr[i].waiter = it.value;
+                        if (!it.value.isOver(dt)) {
+                            gr[i].waiter = it.value;
+                            continue;
+                        }
+                    }
+                    if (it.done) {
+                        deleteIds.push(i);
+                        gr[i] = null;
+                    }
+                }
+            }
+            if (deleteIds.length >= gr.length) {
+                this._mapCoroutine.delete(k);
+                return;
+            } else if (deleteIds.length >= 2) {
+                this._mapCoroutine.set(k, gr.filter((e) => !!e));
+            } else if (deleteIds.length == 1) {
+                gr.splice(deleteIds[0], 1);
+            }
+        });
+        this._lastTime = this._getTimmer();
+        this._mapCoroutine.size == 0 && director.off(Director.EVENT_AFTER_UPDATE, this._update, this);
+    }
+}
+

+ 9 - 0
assets/script/lib/Coroutine.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "6b5262e8-e8d0-4812-9b9b-807cf253b26f",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 6 - 0
assets/script/lib/IPoolHanderComponent.ts

@@ -0,0 +1,6 @@
+import { Component } from "cc";
+
+export interface IPoolHanderComponent extends Component{
+    unuse():void;
+    reuse(args:any):void;
+}

+ 9 - 0
assets/script/lib/IPoolHanderComponent.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "fd893b76-2cc9-4fb3-aaf8-bcd4361fe19a",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 80 - 0
assets/script/lib/clientEvent.ts

@@ -0,0 +1,80 @@
+import { _decorator } from "cc";
+const { ccclass, property } = _decorator;
+@ccclass("ClientEvent")
+export class ClientEvent {
+    private static _handlers: { [key: string]: any[] } = {};
+
+    /**
+     * 监听事件
+     * @param {string} eventName 事件名称
+     * @param {function} handler 监听函数
+     * @param {object} target 监听目标
+     */
+    public static on (eventName: string, handler: Function, target: any) {
+        var objHandler: {} = {handler: handler, target: target};
+        var handlerList: Array<any> = ClientEvent._handlers[eventName];
+        if (!handlerList) {
+            handlerList = [];
+            ClientEvent._handlers[eventName] = handlerList;
+        }
+
+        for (var i = 0; i < handlerList.length; i++) {
+            if (!handlerList[i]) {
+                handlerList[i] = objHandler;
+                return i;
+            }
+        }
+
+        handlerList.push(objHandler);
+
+        return handlerList.length;
+    };
+
+    /**
+     * 取消监听
+     * @param {string} eventName 监听事件
+     * @param {function} handler 监听函数
+     * @param {object} target 监听目标
+     */
+    public static off (eventName: string, handler: Function, target: any) {
+        var handlerList = ClientEvent._handlers[eventName];
+
+        if (!handlerList) {
+            return;
+        }
+
+        for (var i = 0; i < handlerList.length; i++) {
+            var oldObj = handlerList[i];
+            if (oldObj.handler === handler && (!target || target === oldObj.target)) {
+                handlerList.splice(i, 1);
+                break;
+            }
+        }
+    };
+
+    /**
+     * 分发事件
+     * @param {string} eventName 分发事件名
+     * @param  {...any} params 分发事件参数
+     */
+    public static dispatchEvent (eventName: string, ...args: any) {
+        var handlerList = ClientEvent._handlers[eventName];
+
+        var args1 = [];
+        var i;
+        for (i = 1; i < arguments.length; i++) {
+            args1.push(arguments[i]);
+        }
+
+        if (!handlerList) {
+            return;
+        }
+
+        for (i = 0; i < handlerList.length; i++) {
+            var objHandler = handlerList[i];
+            if (objHandler.handler) {
+                objHandler.handler.apply(objHandler.target, args1);
+            }
+        }
+    };
+}

+ 9 - 0
assets/script/lib/clientEvent.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "04379a47-7dd8-45dc-96f8-c0af67acd19e",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 142 - 0
assets/script/main.ts

@@ -0,0 +1,142 @@
+import { _decorator, Component, director, EventTouch, game, Node, PhysicsSystem, PhysicsSystem2D, Settings, Tween, UITransform, Vec3 } from 'cc';
+import { http } from './http';
+import { config } from './config';
+import { model_item_data, userData, userInfo } from './data';
+import { tools } from './tools';
+import { SdkUtil } from './sdkUtil';
+import { GameManager } from './GameManager';
+import { uiManager } from './manager/uiManager';
+import { userDataManager } from './manager/userDataManager';
+import { imageCacheManager } from './manager/imageCacheManager';
+import { home } from './ui/home/home';
+const { ccclass, property } = _decorator;
+
+@ccclass('main')
+export class main extends Component {
+    @property(Node) home_node:Node = null;
+    @property(Node) ui_parent = null;
+    @property(Node) laoding_view_wait = null;
+    @property(Node) send_msg_wait = null;
+    protected start(): void {
+        // game.frameRate = 60;
+        // PhysicsSystem2D.instance.fixedTimeStep = 1 / 60;
+        tools.init(this.node)
+        this.home_node.removeAllChildren()
+        this.initData(()=>{
+            this.getUserCarList(this.initConfig.bind(this))
+        })
+
+        uiManager.Instance().init(this.ui_parent,this.laoding_view_wait,this.send_msg_wait)
+    }
+
+    onAllDataLoadingFinish(){
+        imageCacheManager.start_cache(this.onAllResLoadingFinish.bind(this))
+    }
+
+    onAllResLoadingFinish(){
+        uiManager.Instance().showUi(config.UI.home,this.home_node,(node:Node)=>{
+            node.getComponent(home).init()
+            this.home_node.active = true
+        })
+    }
+    getUserCarList(cb){
+        http.post(config.API.user_car_list,"",(err,d)=>{
+            if(!err){
+                let nd = JSON.parse(d)
+                if(nd.code === config.status.SUCCESS){
+                    userDataManager.user_car_list = nd.content
+                    console.log("user_car_list", userDataManager.user_car_list)
+                    if(cb!=null){
+                        cb()
+                    }
+                }   
+            }
+        })
+    }
+
+    initConfig(){
+        let count = 2;
+        let num = 0;
+        let call_back = ()=>{
+            if(num>=count){
+                this.onAllDataLoadingFinish()
+            }
+        }
+        http.get(config.STATIC_API.levels,(err,d)=>{
+            if(!err){
+                let data = JSON.parse(d)
+                if(data.code===config.status.SUCCESS){
+                    tools.levels =  JSON.parse(data.content.levels_info)
+                    tools.tpl_list = data.content.tpl_list
+                    tools.game_config = JSON.parse(data.content.levels_config)
+                    // console.log("tools.levels",tools.levels)
+                    // console.log("tools.tpl_list",tools.tpl_list)
+                    console.log("tools.game_config",tools.game_config)
+                    num++;
+                    call_back()
+                }
+            }else{
+                console.log("initData err",err)
+            }
+        })
+
+        http.get(config.STATIC_API.car_list,(err,d)=>{
+            if(!err){
+                let data = JSON.parse(d)
+                if(data.code===config.status.SUCCESS){
+                    tools.all_car_list =  data.content
+                    console.log("tools.all_car_list",tools.all_car_list)
+                    num++;
+                    call_back()
+                }
+            }else{
+                console.log("all_car_list err",err)
+            }
+        })
+    }
+    initData(login_finish_cb){
+        this.Login((openid)=>{
+            GameManager.openId =  openid
+            SdkUtil.getUserInfo((data:userInfo)=>{
+                let opt;
+                if(data!=null){
+                    opt = {"openid":GameManager.openId,"platform":config.Platform.platform,"avatarUrl":data.avatarUrl,"nickName":data.nickName,"region_id":1}
+                }else{
+                    GameManager.openId = "asd"
+                    opt = {"openid":GameManager.openId,"platform":config.Platform.platform,"region_id":1,"nickName":"大靓仔"}
+                }
+                http.post(config.API.login,opt,(err,d)=>{
+                    if(!err){
+                        let nd = JSON.parse(d)
+                        if(nd.code === config.status.SUCCESS){
+                            userDataManager.user_data = nd.content
+                            if(login_finish_cb!=null){
+                                login_finish_cb()
+                            }
+                        }
+                    }
+                })
+            })
+        })
+
+    }
+
+    Login(call_back){
+        SdkUtil.login((res)=>{
+            if(res!=null){
+                http.post(config.API.get_dyopen_id,res,(err,data)=>{
+                    if(!err){
+                        let d = JSON.parse(data)
+                        if(d.code === config.status.SUCCESS){
+                            call_back(d.content.openid)
+                        }
+                    }
+                })
+            }else{
+                call_back("123")
+            }
+        })
+    }
+}
+
+

+ 9 - 0
assets/script/main.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "6f5eba5c-71cf-402f-a2cd-d600c19713b4",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/manager.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "029d2ce2-5e75-463b-b4da-61e4015f7771",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 55 - 0
assets/script/manager/ResourceUtil.ts

@@ -0,0 +1,55 @@
+import { _decorator, Component, error, Node, resources } from 'cc';
+const { ccclass, property } = _decorator;
+
+@ccclass('ResourceUtil')
+export class ResourceUtil{
+    public static loadRes (url: string, type: any, cb: Function = ()=>{}) {
+        resources.load(url, (err: any, res: any)=>{
+            if (err) {
+                error(err.message || err);
+                cb(err, res);
+                return;
+            }
+
+            cb && cb(null, res);
+        })
+    }
+    /**
+     * 移除数组中predicate(断言)返回为真值的所有元素
+     * @param {Array} array  一个用来迭代的集合.
+     * @param {Function} predicate  一个迭代函数
+     * @returns 
+     */
+    public static remove(array: any[], predicate: Function) {
+        var result: any[] = [];
+        var indexes: any[] = [];
+        array.forEach(function (item, index) {
+            if (predicate(item)) {
+                result.push(item);
+                indexes.push(index);
+            }
+        });
+
+        ResourceUtil._basePullAt(array, indexes);
+        return result;
+    }
+
+    
+    private static _basePullAt(array: any[], indexes: any[]) {
+        var length = array ? indexes.length : 0;
+        var lastIndex = length - 1;
+        var previous;
+
+        while (length--) {
+            var index = indexes[length];
+            if (length === lastIndex || index !== previous) {
+                previous = index;
+                Array.prototype.splice.call(array, index, 1);
+            }
+        }
+
+        return array;
+    }
+}
+
+

+ 9 - 0
assets/script/manager/ResourceUtil.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "8f2c5c47-d01d-42aa-b287-afadafca5964",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 56 - 0
assets/script/manager/audioManager.ts

@@ -0,0 +1,56 @@
+import { _decorator, AudioClip, AudioSource, Component, Node } from 'cc';
+import { ResourceUtil } from './ResourceUtil';
+const { ccclass, property } = _decorator;
+
+@ccclass('audioManager')
+export class audioManager extends Component {
+    public arrSound: any = [];
+    public audios: any = {};
+    public musicVolume: number = 0.8;
+    public soundVolume: number = 1;
+    public playMusic(clip:AudioClip){
+        if(clip!=null){
+            this.getSound().clip = null;
+            this.getSound().loop = true;
+            this.getSound().clip = clip;
+            this.getSound().play()
+        }
+    }
+    public playSound(path:string){
+        if(path.length<=0){
+            return
+        }
+        let loop:boolean = false
+        ResourceUtil.loadRes(path, AudioClip, (err: any, clip: any)=> {
+            let tmp = {} as any;
+            tmp.clip = clip;
+            tmp.loop = loop;
+            tmp.isMusic = false;
+            this.arrSound.push(tmp);
+
+            if (loop) {
+                this.audios[path] = tmp;
+                clip.setLoop(loop);
+            }
+
+            clip.setVolume(this.soundVolume);
+            
+            clip.playOneShot();
+
+            clip.once('ended', ()=>{
+                ResourceUtil.remove(this.arrSound, (obj: any)=>{
+                    return obj.clip === tmp.clip;
+                });
+            })
+        });
+    }
+
+    getSound(){
+        if(this.node.getComponent(AudioSource)!=null){
+            return this.node.getComponent(AudioSource)
+        }
+        return this.node.addComponent(AudioSource)
+    }
+}
+
+

+ 9 - 0
assets/script/manager/audioManager.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "c98b711d-50ed-4f39-8a57-250b116c44c4",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 23 - 0
assets/script/manager/dataManager.ts

@@ -0,0 +1,23 @@
+import { _decorator, Component, Node } from 'cc';
+import { tools } from '../tools';
+import { userDataManager } from './userDataManager';
+const { ccclass, property } = _decorator;
+
+@ccclass('dataManager')
+export class dataManager  {
+  public static getCurUserCar(){ //获取当前汽车
+    return dataManager.getCarInfoById(userDataManager.user_car_list.default_car_id)
+  }
+
+  public static getCarInfoById(id:number){ //根据id获取车的详情
+    for (let index = 0; index < tools.all_car_list.length; index++) {
+        const element = tools.all_car_list[index];
+        if(element.id===id){
+            return element
+        }
+    }
+    return null
+  }
+}
+
+

+ 9 - 0
assets/script/manager/dataManager.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "4cbbfbd3-de2c-4845-8601-09c5ce037e16",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 98 - 0
assets/script/manager/imageCacheManager.ts

@@ -0,0 +1,98 @@
+import { _decorator, Component, Node, SpriteFrame } from 'cc';
+import { tools } from '../tools';
+const { ccclass, property } = _decorator;
+
+export class img_data{
+    public id:number = 0;
+    public url:string = "";
+    constructor(id,url){
+        this.id = id
+        this.url = url
+    }
+}
+@ccclass('imageCacheManager')
+export class imageCacheManager  {
+    private static game_car_map:Map<number,SpriteFrame> = new Map
+    private static home_car_map:Map<number,SpriteFrame> = new Map
+    private static rank_car_map:Map<number,SpriteFrame> = new Map
+    
+    public static start_cache(cb){
+        let game_car_list:img_data[]=[]
+        let home_car_list:img_data[]=[]
+        let rank_car_list:img_data[]=[]
+        let count = 3
+        let num = 0
+        let call_back = ()=>{
+            num++;
+            if(num>=count){
+                cb()
+            }
+        }
+        for (let index = 0; index < tools.all_car_list.length; index++) {
+            const element = tools.all_car_list[index];
+            game_car_list.push(new img_data(element.id,element.cover))
+            home_car_list.push(new img_data(element.id,element.home_cover))
+            rank_car_list.push(new img_data(element.id,element.ranking_cover))
+        }
+        imageCacheManager.cache_game_car(game_car_list,call_back)
+        imageCacheManager.cache_home_car(home_car_list,call_back)
+        imageCacheManager.cache_rank_car(rank_car_list,call_back)
+    }
+    public static cache_game_car(list:img_data[],finish_cb){ //游戏中图
+        let count = list.length
+        let num = 0
+        let cb = (data)=>{
+            num++;
+            imageCacheManager.game_car_map.set(data.tag,data.sf)
+            if(num>=count){
+                finish_cb()
+            }
+        }
+        for (let index = 0; index < count; index++) {
+            tools.loadRemoteImg(list[index].url,cb,list[index].id)
+        }
+     
+    }
+    public static cache_home_car(list:img_data[],finish_cb){ //	主页图
+        let count = list.length
+        let num = 0
+        let cb = (data)=>{
+            num++;
+            imageCacheManager.home_car_map.set(data.tag,data.sf)
+            if(num>=count){
+                finish_cb()
+            }
+        }
+        for (let index = 0; index < count; index++) {
+            tools.loadRemoteImg(list[index].url,cb,list[index].id)
+        }
+    }
+    public static cache_rank_car(list:img_data[],finish_cb){ //	排行图
+        let count = list.length
+        let num = 0
+        let cb = (data)=>{
+            num++;
+            imageCacheManager.rank_car_map.set(data.tag,data.sf)
+            if(num>=count){
+                finish_cb()
+            }
+        }
+        for (let index = 0; index < count; index++) {
+            tools.loadRemoteImg(list[index].url,cb,list[index].id)
+        }
+    }
+
+    public static getRankCarImageById(id:number){
+        return imageCacheManager.rank_car_map.get(id)
+    }
+
+    public static geetHomeCarImageById(id:number){
+        return imageCacheManager.home_car_map.get(id)
+    }
+
+    public static getGameCarImageById(id:number){
+        return imageCacheManager.game_car_map.get(id)
+    }
+}
+
+

+ 9 - 0
assets/script/manager/imageCacheManager.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "efff73fb-8037-4406-9ece-1654f20dcf36",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 81 - 0
assets/script/manager/uiManager.ts

@@ -0,0 +1,81 @@
+import { Node, Prefab, instantiate, resources } from "cc";
+
+export class uiManager  {
+    private static instance:uiManager =null;
+    public static  Instance(){
+        if(this.instance==null){
+            this.instance = new uiManager
+        }
+        return this.instance
+    }
+    private ui_parent:Node = null
+    private loading_view:Node = null
+    private send_msg_view:Node = null
+    public init(ui_node:Node,loading_node:Node,send_msg_loading:Node){
+        this.ui_parent = ui_node
+        this.send_msg_view = send_msg_loading
+        this.loading_view = loading_node
+    }
+
+    public showUi(ui_path:string,parent:Node =null,cb=null){
+        if(this.ui_parent==null){
+            return console.error("ui_parent not init..")
+        }
+        resources.load(ui_path,Prefab,(err,fb:Prefab)=>{
+            if(!err){
+                let node = instantiate(fb)
+                if(parent!=null){
+                    node.parent = parent
+                }else{
+                    node.parent = this.ui_parent
+                }
+                if(cb!=null){
+                    cb(node)
+                }
+            }else{
+                console.error("showUi error:",err)
+            }
+        })
+    }
+
+    public showLoading(){
+        if(this.loading_view!=null){
+
+        }else{
+            console.error("loading view not init..")
+        }
+    }
+
+    public hideLoading(){
+        if(this.loading_view!=null){
+            
+        }else{
+            console.error("loading view not init..")
+        }
+    }
+
+
+    public showSendMsgWait(){
+        if(this.send_msg_view!=null){
+            this.send_msg_view.active = true
+        }else{
+            console.error("send_msg_view view not init..")
+        }
+    }
+
+    public hideSendMsgWait(){
+        if(this.send_msg_view!=null){
+            this.send_msg_view.active = false
+        }else{
+            console.error("send_msg_view view not init..")
+        }
+    }
+
+    public onButtonListen(btn:Node,call_back){
+        btn.on(Node.EventType.TOUCH_END,()=>{
+            call_back()
+        })
+    }
+}
+
+

+ 9 - 0
assets/script/manager/uiManager.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "393a3d25-f709-4a39-8a7c-82b8d5348595",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 11 - 0
assets/script/manager/userDataManager.ts

@@ -0,0 +1,11 @@
+import { _decorator, Component, Node } from 'cc';
+import { user_car_list, userData } from '../data';
+const { ccclass, property } = _decorator;
+
+@ccclass('userDataManager')
+export class userDataManager  {
+    public static user_data:userData = null
+    public static user_car_list:user_car_list = null
+}
+
+

+ 9 - 0
assets/script/manager/userDataManager.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "7087c92b-6e57-4ac4-828f-3ff0170107ea",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 456 - 0
assets/script/sdkUtil.ts

@@ -0,0 +1,456 @@
+import { _decorator, error, SpriteFrame, sys } from "cc";
+import { config } from "./config";
+//管理广告、分享、SDK相关内容的组件
+export class SdkUtil {
+    public static platform: string = 'cocos'; //平台
+    public static imgAd: SpriteFrame = null!;
+    public static imgShare: SpriteFrame = null!;
+    public static isDebugMode: boolean = false;
+    public static onlineInterval: number = -1;
+    public static isEnableVibrate: boolean = true;
+    public static isCheckOffline: boolean = false; //登录后会检查是否展示登录界面,而且只检查一次
+    public static isWatchVideoAd: boolean = false;//是否正在播放广告
+    public static isEnableMoving: boolean = false;//是否允许屏幕上下移动
+    public static isEnableZoom: boolean = false;//是否允许屏幕缩放
+    public static arrLockDiary = [];//未解锁日记
+    public static vibrateInterval: number = 100;//两次震动之间的间隔,AppActivity里面的震动间隔也是100
+    public static vibratePreTime: number = 0;//上次震动时间
+
+
+    public static videoAd:any =null;
+    public static isLookAd:boolean = false; //是否在看广告
+
+    public static tt_systemInfo: any = null;                //抖音_系统信息
+    private static tt_isSupportSidebar:boolean = false;     //抖音_是否支持侧边栏
+    private static tt_isToEnterFromSidebar:boolean = false; //抖音_是否从侧边栏进入
+
+    private static tt_gameRecorder:any = null;      //抖音游戏录制
+    private static tt_recordVideoPath:string = '';  //抖音录制视频路径
+    private static tt_totalRecord:number = 300;     //抖音总录制时间
+    private static tt_isRecording:boolean = false;  //抖音是否录制中
+
+    //------------------------------  公共  ------------------------------//
+
+    public static init() {
+        // this.ttGetSystemInfo(()=> {
+        //     this.ttRegisterInfo()
+        // })
+    }
+
+    // 苹果手机是否有灵动岛
+    public static iPhoneIsLingdongdao():boolean {
+        if(sys.platform==sys.Platform.BYTEDANCE_MINI_GAME) {
+            if(SdkUtil.tt_systemInfo !=null) {
+                if(SdkUtil.tt_systemInfo.brand=='Apple'||SdkUtil.tt_systemInfo.brand=='devtools')
+                if(SdkUtil.tt_systemInfo.model=='iPhone 14'||
+                   SdkUtil.tt_systemInfo.model=='iPhone 14 Pro'||
+                   SdkUtil.tt_systemInfo.model=='iPhone 14 Pro Max'||
+                   SdkUtil.tt_systemInfo.model=='iPhone 15'||
+                   SdkUtil.tt_systemInfo.model=='iPhone 15 Pro'||
+                   SdkUtil.tt_systemInfo.model=='iPhone 15 Pro Max') {
+                    return true
+                }
+            }
+        }
+        return false
+    }
+
+    // 自定义事件统计
+    public static customEventStatistics(eventType: string, objParams?: any) {
+        eventType = eventType.toString();
+        if (!objParams) { objParams = {}; }
+        // console.log({'eventType': eventType},{'objParams': objParams});
+        if (this.platform === 'wx') {
+            //@ts-ignore
+            if (window['wx'] && window['wx']['aldSendEvent']) {
+                //@ts-ignore 
+                window.wx['aldSendEvent'](eventType, objParams);
+            }
+        }
+        //@ts-ignore
+        if (this.platform === 'cocos' && window.cocosAnalytics && window.cocosAnalytics.isInited()) {
+            console.log("###统计", eventType, objParams);
+            //@ts-ignore
+            window.cocosAnalytics.CACustomEvent.onStarted(eventType, objParams);
+        }
+    }
+
+    // 检测显示添加桌面
+    public static checkIsShowAddDesktop():boolean {
+        if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+            if(SdkUtil.tt_systemInfo.appName=='Douyin' || SdkUtil.tt_systemInfo.appName=='douyin_lite') {
+                return true
+            }
+        }
+        return false
+    }
+
+    // 分享游戏
+    public static shareGame(title: string, imageUrl: string, videoPath: string) {
+        if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+            if(videoPath!="") {
+                // this.ttShareScreenRecordVideo(config.gameName,videoPath)
+            }
+        } else if(sys.platform == sys.Platform.WECHAT_GAME) {
+            title = title + '好刺激、好好玩'
+            // this.wxShare(title, imageUrl)
+        }
+    }
+
+    // 获取广告id
+    public static getAdId(ad_type = config.AD_TYPE.UNKNOWN):string {
+        let ad_id = ""
+        // if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+        //     if(ad_type == config.AD_TYPE.RE_LIFE) {
+        //         ad_id = config.TT_REWARD.RE_LIFE
+        //     } else if (ad_type == config.AD_TYPE.ANSWER) {
+        //         ad_id = config.TT_REWARD.ANSWER
+        //     } else if (ad_type == config.AD_TYPE.LOOK_TIPS) {
+        //         ad_id = config.TT_REWARD.LOOK_TIPS
+        //     } else if (ad_type == config.AD_TYPE.UN_LOCK_24) {
+        //         ad_id = config.TT_REWARD.UN_LOCK_24
+        //     } else if (ad_type == config.AD_TYPE.UN_LOCK) {
+        //         ad_id = config.TT_REWARD.UN_LOCK
+        //     } else if (ad_type == config.AD_TYPE.ADD_TIME) {
+        //         ad_id = config.TT_REWARD.ADD_TIME
+        //     }
+        // } else if (sys.platform == sys.Platform.WECHAT_GAME) {
+        //     if(ad_type == config.AD_TYPE.RE_LIFE) {
+        //         ad_id = config.WX_REWARD.RE_LIFE
+        //     } else if (ad_type == config.AD_TYPE.ANSWER) {
+        //         ad_id = config.WX_REWARD.ANSWER
+        //     } else if (ad_type == config.AD_TYPE.LOOK_TIPS) {
+        //         ad_id = config.WX_REWARD.LOOK_TIPS
+        //     } else if (ad_type == config.AD_TYPE.UN_LOCK_24) {
+        //         ad_id = config.WX_REWARD.UN_LOCK_24
+        //     } else if (ad_type == config.AD_TYPE.UN_LOCK) {
+        //         ad_id = config.WX_REWARD.UN_LOCK
+        //     } else if (ad_type == config.AD_TYPE.ADD_TIME) {
+        //         ad_id = config.WX_REWARD.ADD_TIME
+        //     }
+        // }
+        return ad_id
+    }
+    
+    // 显示激励视频广告
+    public static showVideoAd(_adUnitId: string, call_back) {
+    //     if(gameManager.isFreeAds()) {
+    //         call_back({"isEnded":true})
+    //         return
+    //     }
+    //     if(sys.platform==sys.Platform.BYTEDANCE_MINI_GAME||sys.platform==sys.Platform.WECHAT_GAME){
+    //         gameManager.Singleton.showLoadingLevel()
+    //         if(sys.platform==sys.Platform.BYTEDANCE_MINI_GAME) {
+    //             SdkUtil.videoAd = tt.createRewardedVideoAd({adUnitId: _adUnitId});
+    //         } else if(sys.platform==sys.Platform.WECHAT_GAME) {
+    //             gameManager.Singleton.hideLoadingLevel()
+    //             call_back({"isEnded":true})
+    //             return
+    //             // SdkUtil.videoAd = wx.createRewardedVideoAd({adUnitId: _adUnitId});
+    //         }
+
+    //         if(SdkUtil.videoAd==null){ 
+    //             gameManager.Singleton.hideLoadingLevel()
+    //             return
+    //          }
+
+    //         SdkUtil.videoAd.onLoad(() => {
+    //             SdkUtil.isLookAd = true
+    //             SdkUtil.videoAd.show();
+    //             console.log("广告加载完成");
+    //         });
+    //         SdkUtil.videoAd.onClose((res) => {
+    //             call_back(res)
+    //             SdkUtil.isLookAd = false
+    //             SdkUtil.videoAd.destroy()
+    //             gameManager.Singleton.hideLoadingLevel()
+    //         });
+    //         SdkUtil.videoAd.onError((res) => {
+    //             let errorString = res.errCode + '-' + res.errMsg
+    //             call_back({isEnded:false,errorString:errorString})
+    //             SdkUtil.isLookAd = false
+    //             SdkUtil.videoAd.destroy()
+    //             gameManager.Singleton.hideLoadingLevel()
+    //         });
+    //         SdkUtil.videoAd.load()
+    //     }
+    // }
+
+    // //------------------------------  微信相关  ------------------------------//
+
+    // // 微信分享
+    // public static wxShare(title: string, imageUrl: string) {
+    //     // console.log('微信分享=',title, 'imageUrl=',imageUrl)
+    //     wx.showShareMenu({
+    //         withShareTicket: true,
+    //         // shareAppMessage(可以删除):显示分享给好友选项,shareTimeline(可以删除):显示分享至朋友圈选项
+	// 	    // 可以只开启前者。如果要开启后者,则两者必须都开启才能生效。
+    //         // menus: ['shareAppMessage', 'shareTimeline'],
+    //         menus: ['shareAppMessage'],
+    //         complete: () => {}
+    //     });
+    //     // 主动分享
+    //     wx.shareAppMessage({
+    //         title: title,
+    //         imageUrl: imageUrl
+    //     });
+    // }
+
+
+    // //------------------------------  抖音相关  ------------------------------//
+
+    // // 抖音获取系统信息
+    // public static ttGetSystemInfo(callback) {
+    //     if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+    //         tt.getSystemInfo({
+    //             success:(res) => {
+    //                 // console.log('tt.getSystemInfo=',res)
+    //                 // appName: "Douyin" appName: "douyin_lite"
+    //                 SdkUtil.tt_systemInfo = res
+    //                 callback()
+    //             }
+    //         })
+    //     }
+    }
+
+    // 抖音添加快捷键(目前仅支持:抖音(Douyin) 和 抖音极速版(douyin_lite))
+    public static ttAddShortcut(onSuccess:Function = null, onFail:Function = null) {
+        if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+            if(SdkUtil.tt_systemInfo.appName=='Douyin'||SdkUtil.tt_systemInfo.appName=='douyin_lite') {
+                if(SdkUtil.tt_systemInfo.brand=='Apple') {
+                    tt.addShortcut({
+                        success() {
+                            console.log("添加桌面成功");
+                            onSuccess && onSuccess(null)
+                        },
+                        fail(err) {
+                            console.log("添加桌面失败", err.errMsg);
+                            onFail && onFail(err)
+                        },
+                    });
+                } else if(SdkUtil.tt_systemInfo.brand=='Android') {
+                    // 检测只支持安卓
+                    tt.checkShortcut({
+                        success(res) {
+                            console.log("检查快捷方式", res.status);
+                            if(res.status.exist==false||res.status.needUpdate==true) {
+                                tt.addShortcut({
+                                    success() {
+                                        console.log("添加桌面成功");
+                                        onSuccess && onSuccess(null)
+                                    },
+                                    fail(err) {
+                                        console.log("添加桌面失败", err.errMsg);
+                                        onFail && onFail(err)
+                                    },
+                                });
+                            }
+                        },
+                        fail(err) {
+                            console.log("检查快捷方式失败", err.errMsg);
+                            onFail && onFail(err)
+                        },
+                    });
+                }   
+            }
+        }
+    }
+
+    // 抖音注册信息
+    public static ttRegisterInfo() {
+        if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+            tt.onShow((res) => {
+                console.log('tt.onShow =', res)
+                // console.log('res=',res)
+                if(res.scene == '021036' || res.scene == '101036') {
+                    SdkUtil.tt_isToEnterFromSidebar = true
+                }
+                if(res.scene.launch_from == 'homepage' && res.scene.location == 'sidebar_card') {
+                    SdkUtil.tt_isToEnterFromSidebar = true
+                }
+            });
+            tt.onHide(()=>{
+                console.log('tt.onHide')
+                if(SdkUtil.isLookAd==false) {
+                    // statisticsManager.uploadRecordUserLevel(false)
+                }
+            })
+            
+            tt.checkScene({
+                scene: "sidebar",
+                success: (res) => {
+                    console.log("check scene success: ", res.isExist);
+                    if(res.isExist != undefined || res.isExist != null) {
+                        SdkUtil.tt_isSupportSidebar = res.isExist
+                    }
+                },
+                fail: (res) => {
+                    console.log("check scene fail:", res);
+                }
+            });
+
+            let options = tt.getLaunchOptionsSync()
+            console.log('getLaunchOptionsSync=', options)
+            if(options.scene == '021036' || options.scene == '101036') {
+                SdkUtil.tt_isToEnterFromSidebar = true
+            }
+        }
+    }
+
+    // 抖音检测是否显示奖励
+    public static ttCheckSceneShowRewards():boolean {
+        return SdkUtil.tt_isSupportSidebar
+    }
+
+    // 抖音检测是否从侧边栏进入
+    public static ttCheckToEnterFromSidebar():boolean {
+        return SdkUtil.tt_isToEnterFromSidebar
+    }
+
+    // 抖音导航到侧边栏场景
+    public static ttNavToSidebarScene() {
+        if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+            tt.navigateToScene({
+                scene: "sidebar",
+                success: (res) => {
+                    // console.log("navigate to scene success");
+                },
+                fail: (res) => {
+                    // console.log("navigate to scene fail: ", res);
+                },
+            });
+        }
+    }
+
+    // 抖音开启屏幕录制
+    public static ttStartScreenRecording() {
+        if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) {
+            return
+        }
+
+        if(this.tt_systemInfo.platform == 'devtools') {
+            console.log('抖音模拟器')
+            return
+        }
+
+        if(this.tt_isRecording==true) {
+            this.ttStopScreenRecording()
+        }
+        
+        if(!this.tt_gameRecorder) {
+            this.tt_gameRecorder = tt.getGameRecorderManager()
+        }
+        this.tt_gameRecorder.start({duration: this.tt_totalRecord})
+        this.tt_gameRecorder.onStart(()=> {
+            this.tt_isRecording = true
+            // console.log('GameRecorder onStart onStart onStart')
+        })
+        this.tt_gameRecorder.onStop((res)=> {
+            // console.log('GameRecorder onStop onStop onStop=',res)
+            this.tt_isRecording = false
+            this.tt_recordVideoPath = res.videoPath
+        })
+        this.tt_gameRecorder.onError((e)=> {
+            console.log('ttGameRecord error:',e)
+        })
+        
+    }
+
+    // 抖音关闭屏幕录制
+    public static ttStopScreenRecording(isClearVideoPath:boolean = false) {
+        if(sys.platform!=sys.Platform.BYTEDANCE_MINI_GAME) {
+            return
+        }
+
+        if(this.tt_gameRecorder == null) {
+            return
+        }
+
+        if(isClearVideoPath) {
+            this.tt_recordVideoPath = "";
+        }
+        
+        this.tt_gameRecorder.stop()        
+    }
+
+    // 抖音获取屏幕录制视频文件
+    public static ttGetScreenRecordingVideoPath():string {
+        return this.tt_recordVideoPath;
+    }
+
+    // 抖音分享屏幕录制视频
+    private static ttShareScreenRecordVideo(title: string, videoPath: string, onSuccess: Function = null, onFail: Function = null) {
+        // tt.shareAppMessage({
+        //     title: title,
+        //     templateId: config.TT_SHARE_TEMPLATEID,
+        //     channel: "video",
+        //     extra: {
+        //         videoTopics: [config.gameName],
+        //         hashtag_list: ['小游戏','小程序'],
+        //         videoPath: videoPath,
+        //         withVideoId: true,
+        //     },
+        //     success: (res) => {
+        //         console.log('抖音分享屏幕录制视频,成功=',res)
+        //         onSuccess && onSuccess();
+        //     },
+        //     fail: (e) => {
+        //         // 当前今日头条ios无法获得分享成功回调 if(res.platform === 'ios' && res.appName === 'Toutiao')
+        //         console.log('抖音分享屏幕录制视频,失败=',e)
+        //         onFail && onFail()
+        //     }
+        // })
+    }
+
+    public static getUserInfo(call){
+        if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+            tt.getUserInfo({
+                // withCredentials: true,
+                // withRealNameAuthenticationInfo: true,
+                success(res) {
+                  console.log(`getUserInfo 调用成功`, res.userInfo);
+                  call(res.userInfo)
+                },
+                fail(res) {
+                  console.log(`getUserInfo 调用失败`, res.errMsg);
+                },
+              });
+        }else{
+            call(null)
+        }
+    }
+
+    public static login(call){
+        if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+            tt.login({
+                force: true,
+                success(res) {
+                  console.log(`login 调用成功${res.code} ${res.anonymousCode}`);
+                  call({"code":res.code,"anonymousCode":res.anonymousCode})
+                },
+                fail(res) {
+                  console.log(`login 调用失败`);
+                  call(null)
+                },
+              });
+              
+        }else{
+            call(null)
+        }
+    }
+
+    public static vibrateShort(){
+        if(sys.platform == sys.Platform.BYTEDANCE_MINI_GAME) {
+            tt.vibrateShort({
+                success(res) {
+                //   console.log(`${res}`);
+                },
+                fail(res) {
+                //   console.log(`vibrateShort调用失败`);
+                },
+              });
+        }
+          
+    }
+
+}

+ 9 - 0
assets/script/sdkUtil.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "a8a00bfa-1f76-4071-9fa9-3349c8706fab",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 64 - 0
assets/script/tools.ts

@@ -0,0 +1,64 @@
+import { _decorator, assetManager, Component, ImageAsset, instantiate, Node, Prefab, resources, SpriteFrame, Texture2D } from 'cc';
+import { config } from './config';
+
+import { main } from './main';
+import { car_item_data, edit_game_config_data, model_item_data, userData } from './data';
+import { game } from './game/game';
+import { Util } from './util';
+const { ccclass, property } = _decorator;
+
+@ccclass('tools')
+export class tools  {
+    public static levels:string[] = []
+    public static tpl_list:model_item_data[] = []
+    public static game_config:edit_game_config_data = null
+    public static all_car_list:car_item_data[] =[]
+    public static init(n:Node){
+        tools.parent = n
+    }
+    public static playGame(){
+        resources.load(config.PREFAB.game,(err,prefab:Prefab)=>{
+            let node = instantiate(prefab)
+            node.parent = tools.parent
+            node.getComponent(game).show()
+        })
+    }
+    public static parent:Node = null;
+
+    public static getBoxRandom(type:number){
+        for (let index = 0; index < tools.game_config.box_list.length; index++) {
+            const element =  tools.game_config.box_list[index];
+            if(element.type==type){
+                return element
+            }
+        }
+    }
+    public static isBox(type:number){
+        if(type<=5||type>=9){
+            return true
+        }
+        return false
+    }
+
+    public static randomCoin(){
+       return Util.getRandomInt(tools.game_config.scores.min,tools.game_config.scores.max) 
+    }
+
+    public static loadRemoteImg(url:string,call,tag:number=-1){
+        if(url.length<=0){
+            return null;
+        }
+        assetManager.loadRemote<ImageAsset>(url, (err, imageAsset2)=>{
+            if (!err && imageAsset2) {        
+                const texture = new Texture2D();
+                texture.image = imageAsset2;
+                let spFrame2 = new SpriteFrame();     
+                spFrame2.texture = texture;
+                spFrame2.addRef()
+                call({"url":url,"sf":spFrame2,"tag":tag})
+            }
+        }); 
+    }
+}
+
+

+ 9 - 0
assets/script/tools.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "f705dbfb-12cf-4504-b712-63c323d27680",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/ui.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "f7f322cc-bd7d-41bf-a858-ba415a99697c",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 9 - 0
assets/script/ui/home.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "07de05b0-dbf5-480f-920d-18b4c0cf7145",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 28 - 0
assets/script/ui/home/home.ts

@@ -0,0 +1,28 @@
+import { _decorator, Component, Node } from 'cc';
+import { uiManager } from '../../manager/uiManager';
+import { home_car } from './home_car';
+import { home_top } from './home_top';
+import { home_bottom } from './home_bottom';
+import { tools } from '../../tools';
+const { ccclass, property } = _decorator;
+
+@ccclass('home')
+export class home extends Component {
+    @property(Node) home_car:Node = null
+    @property(Node) top:Node = null
+    @property(Node) bottom:Node = null
+    @property(Node) btn_start_game:Node = null
+    protected start(): void {
+        uiManager.Instance().onButtonListen(this.btn_start_game,()=>{
+            tools.playGame()
+            this.node.parent.active = false
+        })
+    }
+    public init(){
+        this.home_car.getComponent(home_car).updateCar()
+        this.top.getComponent(home_top).init()
+        this.bottom.getComponent(home_bottom).init()
+    }
+}
+
+

+ 9 - 0
assets/script/ui/home/home.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "952ad5fc-dea2-49c4-ae21-1d7174887942",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 14 - 0
assets/script/ui/home/home_bottom.ts

@@ -0,0 +1,14 @@
+import { _decorator, Component, Node } from 'cc';
+const { ccclass, property } = _decorator;
+
+@ccclass('home_bottom')
+export class home_bottom extends Component {
+    start() {
+
+    }
+    public init(){
+
+    }
+}
+
+

+ 9 - 0
assets/script/ui/home/home_bottom.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "1501c360-6710-4907-b552-ff12d0e725ad",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 15 - 0
assets/script/ui/home/home_car.ts

@@ -0,0 +1,15 @@
+import { _decorator, Component, Node, Sprite } from 'cc';
+import { imageCacheManager } from '../../manager/imageCacheManager';
+import { userData } from '../../data';
+import { userDataManager } from '../../manager/userDataManager';
+const { ccclass, property } = _decorator;
+
+@ccclass('home_car')
+export class home_car extends Component {
+    @property(Node) spr_car:Node = null
+    updateCar(){
+        this.spr_car.getComponent(Sprite).spriteFrame = imageCacheManager.geetHomeCarImageById(userDataManager.user_car_list.default_car_id)
+    }
+}
+
+

+ 9 - 0
assets/script/ui/home/home_car.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "bac6f81a-7a82-4b06-8d09-83fb3731841c",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 23 - 0
assets/script/ui/home/home_top.ts

@@ -0,0 +1,23 @@
+import { _decorator, Component, Node } from 'cc';
+import { uiManager } from '../../manager/uiManager';
+import { config } from '../../config';
+const { ccclass, property } = _decorator;
+
+@ccclass('home_top')
+export class home_top extends Component {
+    @property(Node) btn_gong_gao:Node = null
+    @property(Node) btn_setting:Node = null
+    protected start(): void {
+        uiManager.Instance().onButtonListen(this.btn_gong_gao,()=>{
+
+        })
+        uiManager.Instance().onButtonListen(this.btn_setting,()=>{
+            uiManager.Instance().showUi(config.UI.ui_setting)
+        })
+    }
+    public init(){
+
+    }
+}
+
+

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно