소스 검색

替换资源

mojunshou 1 년 전
부모
커밋
ae46b20c35
44개의 변경된 파일4579개의 추가작업 그리고 1608개의 파일을 삭제
  1. 2761 1061
      assets/bundle/gui/eliminate/eliminate.prefab
  2. 9 0
      assets/bundle/gui/eliminate/fnt.meta
  3. BIN
      assets/bundle/gui/eliminate/fnt/OPPOSANS-H.TTF
  4. 12 0
      assets/bundle/gui/eliminate/fnt/OPPOSANS-H.TTF.meta
  5. BIN
      assets/bundle/gui/eliminate/texture/bg.png
  6. 21 21
      assets/bundle/gui/eliminate/texture/bg.png.meta
  7. BIN
      assets/bundle/gui/eliminate/texture/bg2.png
  8. 134 0
      assets/bundle/gui/eliminate/texture/bg2.png.meta
  9. BIN
      assets/bundle/gui/eliminate/texture/brick_bg.png
  10. 134 0
      assets/bundle/gui/eliminate/texture/brick_bg.png.meta
  11. BIN
      assets/bundle/gui/eliminate/texture/btn_bg.png
  12. 134 0
      assets/bundle/gui/eliminate/texture/btn_bg.png.meta
  13. BIN
      assets/bundle/gui/eliminate/texture/icon_1.png
  14. 34 34
      assets/bundle/gui/eliminate/texture/icon_1.png.meta
  15. BIN
      assets/bundle/gui/eliminate/texture/icon_5.png
  16. 34 34
      assets/bundle/gui/eliminate/texture/icon_5.png.meta
  17. BIN
      assets/bundle/gui/eliminate/texture/icon_6.png
  18. 134 0
      assets/bundle/gui/eliminate/texture/icon_6.png.meta
  19. BIN
      assets/bundle/gui/eliminate/texture/icon_7.png
  20. 134 0
      assets/bundle/gui/eliminate/texture/icon_7.png.meta
  21. BIN
      assets/bundle/gui/eliminate/texture/icon_8.png
  22. 134 0
      assets/bundle/gui/eliminate/texture/icon_8.png.meta
  23. BIN
      assets/bundle/gui/eliminate/texture/icon_bg.png
  24. 134 0
      assets/bundle/gui/eliminate/texture/icon_bg.png.meta
  25. BIN
      assets/bundle/gui/eliminate/texture/item_box.png
  26. 20 20
      assets/bundle/gui/eliminate/texture/item_box.png.meta
  27. BIN
      assets/bundle/gui/eliminate/texture/item_grid.png
  28. 134 0
      assets/bundle/gui/eliminate/texture/item_grid.png.meta
  29. BIN
      assets/bundle/gui/eliminate/texture/setting.png
  30. 134 0
      assets/bundle/gui/eliminate/texture/setting.png.meta
  31. BIN
      assets/bundle/gui/eliminate/texture/首页.png
  32. 134 0
      assets/bundle/gui/eliminate/texture/首页.png.meta
  33. 16 5
      assets/script/game/account/model/AccountModelComp.ts
  34. 3 1
      assets/script/game/common/config/GameEvent.ts
  35. 43 151
      assets/script/game/common/manager/CocosHandler.ts
  36. 9 0
      assets/script/game/eliminate/block.meta
  37. 14 0
      assets/script/game/eliminate/config/GameData.ts
  38. 1 1
      assets/script/game/eliminate/view/BlockItemView.ts.meta
  39. 0 268
      assets/script/game/eliminate/view/BlockItemView.ts
  40. 218 9
      assets/script/game/eliminate/view/EliminateViewComp.ts
  41. 10 1
      assets/script/game/eliminate/view/GamePassView.ts
  42. 14 0
      assets/script/game/eliminate/view/GuildTipsView.ts
  43. 9 0
      assets/script/game/eliminate/view/GuildTipsView.ts.meta
  44. 11 2
      assets/script/game/initialize/view/LoadingViewComp.ts

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 2761 - 1061
assets/bundle/gui/eliminate/eliminate.prefab


+ 9 - 0
assets/bundle/gui/eliminate/fnt.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "94400e9c-92a8-4389-b914-ff138ec515e6",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

BIN
assets/bundle/gui/eliminate/fnt/OPPOSANS-H.TTF


+ 12 - 0
assets/bundle/gui/eliminate/fnt/OPPOSANS-H.TTF.meta

@@ -0,0 +1,12 @@
+{
+  "ver": "1.0.1",
+  "importer": "ttf-font",
+  "imported": true,
+  "uuid": "e74b23b9-2136-4e97-b193-000fa44051aa",
+  "files": [
+    ".json",
+    "OPPOSANS-H.ttf"
+  ],
+  "subMetas": {},
+  "userData": {}
+}

BIN
assets/bundle/gui/eliminate/texture/bg.png


+ 21 - 21
assets/bundle/gui/eliminate/texture/bg.png.meta

@@ -2,7 +2,7 @@
   "ver": "1.0.27",
   "importer": "image",
   "imported": true,
-  "uuid": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2",
+  "uuid": "ca18e677-aff4-4e11-ba09-5a70bcf9ef69",
   "files": [
     ".json",
     ".png"
@@ -10,14 +10,14 @@
   "subMetas": {
     "6c48a": {
       "importer": "texture",
-      "uuid": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2@6c48a",
+      "uuid": "ca18e677-aff4-4e11-ba09-5a70bcf9ef69@6c48a",
       "displayName": "bg",
       "id": "6c48a",
       "name": "texture",
       "userData": {
         "wrapModeS": "clamp-to-edge",
         "wrapModeT": "clamp-to-edge",
-        "imageUuidOrDatabaseUri": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2",
+        "imageUuidOrDatabaseUri": "ca18e677-aff4-4e11-ba09-5a70bcf9ef69",
         "isUuid": true,
         "visible": false,
         "minfilter": "linear",
@@ -34,7 +34,7 @@
     },
     "f9941": {
       "importer": "sprite-frame",
-      "uuid": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2@f9941",
+      "uuid": "ca18e677-aff4-4e11-ba09-5a70bcf9ef69@f9941",
       "displayName": "bg",
       "id": "f9941",
       "name": "spriteFrame",
@@ -47,13 +47,13 @@
         "trimX": 0,
         "trimY": 0,
         "width": 720,
-        "height": 1280,
+        "height": 1600,
         "rawWidth": 720,
-        "rawHeight": 1280,
-        "borderTop": 10,
-        "borderBottom": 10,
-        "borderLeft": 10,
-        "borderRight": 10,
+        "rawHeight": 1600,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
         "packable": true,
         "pixelsToUnit": 100,
         "pivotX": 0.5,
@@ -62,16 +62,16 @@
         "vertices": {
           "rawPosition": [
             -360,
-            -640,
+            -800,
             0,
             360,
-            -640,
+            -800,
             0,
             -360,
-            640,
+            800,
             0,
             360,
-            640,
+            800,
             0
           ],
           "indexes": [
@@ -84,9 +84,9 @@
           ],
           "uv": [
             0,
-            1280,
+            1600,
             720,
-            1280,
+            1600,
             0,
             0,
             720,
@@ -104,17 +104,17 @@
           ],
           "minPos": [
             -360,
-            -640,
+            -800,
             0
           ],
           "maxPos": [
             360,
-            640,
+            800,
             0
           ]
         },
         "isUuid": true,
-        "imageUuidOrDatabaseUri": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2@6c48a",
+        "imageUuidOrDatabaseUri": "ca18e677-aff4-4e11-ba09-5a70bcf9ef69@6c48a",
         "atlasUuid": ""
       },
       "ver": "1.0.12",
@@ -127,8 +127,8 @@
   },
   "userData": {
     "type": "sprite-frame",
-    "hasAlpha": false,
+    "hasAlpha": true,
     "fixAlphaTransparencyArtifacts": false,
-    "redirect": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2@6c48a"
+    "redirect": "ca18e677-aff4-4e11-ba09-5a70bcf9ef69@6c48a"
   }
 }

BIN
assets/bundle/gui/eliminate/texture/bg2.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/bg2.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2@6c48a",
+      "displayName": "bg2",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2",
+        "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": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2@f9941",
+      "displayName": "bg2",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 0,
+        "trimY": 0,
+        "width": 720,
+        "height": 1280,
+        "rawWidth": 720,
+        "rawHeight": 1280,
+        "borderTop": 10,
+        "borderBottom": 10,
+        "borderLeft": 10,
+        "borderRight": 10,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -360,
+            -640,
+            0,
+            360,
+            -640,
+            0,
+            -360,
+            640,
+            0,
+            360,
+            640,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            0,
+            1280,
+            720,
+            1280,
+            0,
+            0,
+            720,
+            0
+          ],
+          "nuv": [
+            0,
+            0,
+            1,
+            0,
+            0,
+            1,
+            1,
+            1
+          ],
+          "minPos": [
+            -360,
+            -640,
+            0
+          ],
+          "maxPos": [
+            360,
+            640,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": false,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "2eee0fd4-17e0-49cb-8dab-641e4c7394b2@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/brick_bg.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/brick_bg.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "87eed207-974c-43b0-b9cc-c2aa1103ed41",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "87eed207-974c-43b0-b9cc-c2aa1103ed41@6c48a",
+      "displayName": "brick_bg",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "87eed207-974c-43b0-b9cc-c2aa1103ed41",
+        "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": "87eed207-974c-43b0-b9cc-c2aa1103ed41@f9941",
+      "displayName": "brick_bg",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 0,
+        "trimY": 0,
+        "width": 168,
+        "height": 53,
+        "rawWidth": 168,
+        "rawHeight": 53,
+        "borderTop": 14,
+        "borderBottom": 15,
+        "borderLeft": 24,
+        "borderRight": 32,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -84,
+            -26.5,
+            0,
+            84,
+            -26.5,
+            0,
+            -84,
+            26.5,
+            0,
+            84,
+            26.5,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            0,
+            53,
+            168,
+            53,
+            0,
+            0,
+            168,
+            0
+          ],
+          "nuv": [
+            0,
+            0,
+            1,
+            0,
+            0,
+            1,
+            1,
+            1
+          ],
+          "minPos": [
+            -84,
+            -26.5,
+            0
+          ],
+          "maxPos": [
+            84,
+            26.5,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "87eed207-974c-43b0-b9cc-c2aa1103ed41@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "87eed207-974c-43b0-b9cc-c2aa1103ed41@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/btn_bg.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/btn_bg.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "30aabf49-1a8a-4da8-963f-6e7678d0b5b5",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "30aabf49-1a8a-4da8-963f-6e7678d0b5b5@6c48a",
+      "displayName": "btn_bg",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "30aabf49-1a8a-4da8-963f-6e7678d0b5b5",
+        "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": "30aabf49-1a8a-4da8-963f-6e7678d0b5b5@f9941",
+      "displayName": "btn_bg",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 0,
+        "trimY": 0,
+        "width": 328,
+        "height": 88,
+        "rawWidth": 328,
+        "rawHeight": 88,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -164,
+            -44,
+            0,
+            164,
+            -44,
+            0,
+            -164,
+            44,
+            0,
+            164,
+            44,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            0,
+            88,
+            328,
+            88,
+            0,
+            0,
+            328,
+            0
+          ],
+          "nuv": [
+            0,
+            0,
+            1,
+            0,
+            0,
+            1,
+            1,
+            1
+          ],
+          "minPos": [
+            -164,
+            -44,
+            0
+          ],
+          "maxPos": [
+            164,
+            44,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "30aabf49-1a8a-4da8-963f-6e7678d0b5b5@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "30aabf49-1a8a-4da8-963f-6e7678d0b5b5@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/icon_1.png


+ 34 - 34
assets/bundle/gui/eliminate/texture/icon_1.png.meta

@@ -44,12 +44,12 @@
         "rotated": false,
         "offsetX": 0,
         "offsetY": 0,
-        "trimX": 0,
-        "trimY": 0,
-        "width": 45,
-        "height": 47,
-        "rawWidth": 45,
-        "rawHeight": 47,
+        "trimX": 3,
+        "trimY": 3,
+        "width": 54,
+        "height": 54,
+        "rawWidth": 60,
+        "rawHeight": 60,
         "borderTop": 0,
         "borderBottom": 0,
         "borderLeft": 0,
@@ -61,17 +61,17 @@
         "meshType": 0,
         "vertices": {
           "rawPosition": [
-            -22.5,
-            -23.5,
+            -27,
+            -27,
             0,
-            22.5,
-            -23.5,
+            27,
+            -27,
             0,
-            -22.5,
-            23.5,
+            -27,
+            27,
             0,
-            22.5,
-            23.5,
+            27,
+            27,
             0
           ],
           "indexes": [
@@ -83,33 +83,33 @@
             3
           ],
           "uv": [
-            0,
-            47,
-            45,
-            47,
-            0,
-            0,
-            45,
-            0
+            3,
+            57,
+            57,
+            57,
+            3,
+            3,
+            57,
+            3
           ],
           "nuv": [
-            0,
-            0,
-            1,
-            0,
-            0,
-            1,
-            1,
-            1
+            0.05,
+            0.05,
+            0.95,
+            0.05,
+            0.05,
+            0.95,
+            0.95,
+            0.95
           ],
           "minPos": [
-            -22.5,
-            -23.5,
+            -27,
+            -27,
             0
           ],
           "maxPos": [
-            22.5,
-            23.5,
+            27,
+            27,
             0
           ]
         },

BIN
assets/bundle/gui/eliminate/texture/icon_5.png


+ 34 - 34
assets/bundle/gui/eliminate/texture/icon_5.png.meta

@@ -44,12 +44,12 @@
         "rotated": false,
         "offsetX": 0,
         "offsetY": 0,
-        "trimX": 0,
-        "trimY": 0,
-        "width": 87,
-        "height": 93,
-        "rawWidth": 87,
-        "rawHeight": 93,
+        "trimX": 5,
+        "trimY": 2,
+        "width": 50,
+        "height": 56,
+        "rawWidth": 60,
+        "rawHeight": 60,
         "borderTop": 0,
         "borderBottom": 0,
         "borderLeft": 0,
@@ -61,17 +61,17 @@
         "meshType": 0,
         "vertices": {
           "rawPosition": [
-            -43.5,
-            -46.5,
+            -25,
+            -28,
             0,
-            43.5,
-            -46.5,
+            25,
+            -28,
             0,
-            -43.5,
-            46.5,
+            -25,
+            28,
             0,
-            43.5,
-            46.5,
+            25,
+            28,
             0
           ],
           "indexes": [
@@ -83,33 +83,33 @@
             3
           ],
           "uv": [
-            0,
-            93,
-            87,
-            93,
-            0,
-            0,
-            87,
-            0
+            5,
+            58,
+            55,
+            58,
+            5,
+            2,
+            55,
+            2
           ],
           "nuv": [
-            0,
-            0,
-            1,
-            0,
-            0,
-            1,
-            1,
-            1
+            0.08333333333333333,
+            0.03333333333333333,
+            0.9166666666666666,
+            0.03333333333333333,
+            0.08333333333333333,
+            0.9666666666666667,
+            0.9166666666666666,
+            0.9666666666666667
           ],
           "minPos": [
-            -43.5,
-            -46.5,
+            -25,
+            -28,
             0
           ],
           "maxPos": [
-            43.5,
-            46.5,
+            25,
+            28,
             0
           ]
         },

BIN
assets/bundle/gui/eliminate/texture/icon_6.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/icon_6.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "1f8e50dd-b535-4d23-b2ef-b5eb2299a038",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "1f8e50dd-b535-4d23-b2ef-b5eb2299a038@6c48a",
+      "displayName": "icon_6",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "1f8e50dd-b535-4d23-b2ef-b5eb2299a038",
+        "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": "1f8e50dd-b535-4d23-b2ef-b5eb2299a038@f9941",
+      "displayName": "icon_6",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 0,
+        "trimY": 0,
+        "width": 192,
+        "height": 50,
+        "rawWidth": 192,
+        "rawHeight": 50,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -96,
+            -25,
+            0,
+            96,
+            -25,
+            0,
+            -96,
+            25,
+            0,
+            96,
+            25,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            0,
+            50,
+            192,
+            50,
+            0,
+            0,
+            192,
+            0
+          ],
+          "nuv": [
+            0,
+            0,
+            1,
+            0,
+            0,
+            1,
+            1,
+            1
+          ],
+          "minPos": [
+            -96,
+            -25,
+            0
+          ],
+          "maxPos": [
+            96,
+            25,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "1f8e50dd-b535-4d23-b2ef-b5eb2299a038@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "1f8e50dd-b535-4d23-b2ef-b5eb2299a038@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/icon_7.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/icon_7.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "f09f4f73-97d7-4849-9f31-e145d55a2e5b",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "f09f4f73-97d7-4849-9f31-e145d55a2e5b@6c48a",
+      "displayName": "icon_7",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "f09f4f73-97d7-4849-9f31-e145d55a2e5b",
+        "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": "f09f4f73-97d7-4849-9f31-e145d55a2e5b@f9941",
+      "displayName": "icon_7",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": -0.5,
+        "trimX": 0,
+        "trimY": 1,
+        "width": 75,
+        "height": 81,
+        "rawWidth": 75,
+        "rawHeight": 82,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -37.5,
+            -40.5,
+            0,
+            37.5,
+            -40.5,
+            0,
+            -37.5,
+            40.5,
+            0,
+            37.5,
+            40.5,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            0,
+            81,
+            75,
+            81,
+            0,
+            0,
+            75,
+            0
+          ],
+          "nuv": [
+            0,
+            0,
+            1,
+            0,
+            0,
+            0.9878048780487805,
+            1,
+            0.9878048780487805
+          ],
+          "minPos": [
+            -37.5,
+            -40.5,
+            0
+          ],
+          "maxPos": [
+            37.5,
+            40.5,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "f09f4f73-97d7-4849-9f31-e145d55a2e5b@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "f09f4f73-97d7-4849-9f31-e145d55a2e5b@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/icon_8.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/icon_8.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "767120c8-22fc-40a7-835d-acb931efa17e",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "767120c8-22fc-40a7-835d-acb931efa17e@6c48a",
+      "displayName": "icon_8",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "767120c8-22fc-40a7-835d-acb931efa17e",
+        "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": "767120c8-22fc-40a7-835d-acb931efa17e@f9941",
+      "displayName": "icon_8",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0.5,
+        "offsetY": 0,
+        "trimX": 1,
+        "trimY": 0,
+        "width": 197,
+        "height": 84,
+        "rawWidth": 198,
+        "rawHeight": 84,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -98.5,
+            -42,
+            0,
+            98.5,
+            -42,
+            0,
+            -98.5,
+            42,
+            0,
+            98.5,
+            42,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            1,
+            84,
+            198,
+            84,
+            1,
+            0,
+            198,
+            0
+          ],
+          "nuv": [
+            0.005050505050505051,
+            0,
+            1,
+            0,
+            0.005050505050505051,
+            1,
+            1,
+            1
+          ],
+          "minPos": [
+            -98.5,
+            -42,
+            0
+          ],
+          "maxPos": [
+            98.5,
+            42,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "767120c8-22fc-40a7-835d-acb931efa17e@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "767120c8-22fc-40a7-835d-acb931efa17e@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/icon_bg.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/icon_bg.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "84650e17-6180-4abd-a09a-91a4c4cc00ce",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "84650e17-6180-4abd-a09a-91a4c4cc00ce@6c48a",
+      "displayName": "icon_bg",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "84650e17-6180-4abd-a09a-91a4c4cc00ce",
+        "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": "84650e17-6180-4abd-a09a-91a4c4cc00ce@f9941",
+      "displayName": "icon_bg",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 0,
+        "trimY": 0,
+        "width": 116,
+        "height": 48,
+        "rawWidth": 116,
+        "rawHeight": 48,
+        "borderTop": 3,
+        "borderBottom": 3,
+        "borderLeft": 5,
+        "borderRight": 5,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -58,
+            -24,
+            0,
+            58,
+            -24,
+            0,
+            -58,
+            24,
+            0,
+            58,
+            24,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            0,
+            48,
+            116,
+            48,
+            0,
+            0,
+            116,
+            0
+          ],
+          "nuv": [
+            0,
+            0,
+            1,
+            0,
+            0,
+            1,
+            1,
+            1
+          ],
+          "minPos": [
+            -58,
+            -24,
+            0
+          ],
+          "maxPos": [
+            58,
+            24,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "84650e17-6180-4abd-a09a-91a4c4cc00ce@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "84650e17-6180-4abd-a09a-91a4c4cc00ce@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/item_box.png


+ 20 - 20
assets/bundle/gui/eliminate/texture/item_box.png.meta

@@ -46,10 +46,10 @@
         "offsetY": 0,
         "trimX": 0,
         "trimY": 0,
-        "width": 963,
-        "height": 963,
-        "rawWidth": 963,
-        "rawHeight": 963,
+        "width": 694,
+        "height": 697,
+        "rawWidth": 694,
+        "rawHeight": 697,
         "borderTop": 0,
         "borderBottom": 0,
         "borderLeft": 0,
@@ -61,17 +61,17 @@
         "meshType": 0,
         "vertices": {
           "rawPosition": [
-            -481.5,
-            -481.5,
+            -347,
+            -348.5,
             0,
-            481.5,
-            -481.5,
+            347,
+            -348.5,
             0,
-            -481.5,
-            481.5,
+            -347,
+            348.5,
             0,
-            481.5,
-            481.5,
+            347,
+            348.5,
             0
           ],
           "indexes": [
@@ -84,12 +84,12 @@
           ],
           "uv": [
             0,
-            963,
-            963,
-            963,
+            697,
+            694,
+            697,
             0,
             0,
-            963,
+            694,
             0
           ],
           "nuv": [
@@ -103,13 +103,13 @@
             1
           ],
           "minPos": [
-            -481.5,
-            -481.5,
+            -347,
+            -348.5,
             0
           ],
           "maxPos": [
-            481.5,
-            481.5,
+            347,
+            348.5,
             0
           ]
         },

BIN
assets/bundle/gui/eliminate/texture/item_grid.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/item_grid.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "8712c6ec-902f-4dc6-a1da-32562bb919f3",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "8712c6ec-902f-4dc6-a1da-32562bb919f3@6c48a",
+      "displayName": "item_grid",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "8712c6ec-902f-4dc6-a1da-32562bb919f3",
+        "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": "8712c6ec-902f-4dc6-a1da-32562bb919f3@f9941",
+      "displayName": "item_grid",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 1,
+        "trimY": 1,
+        "width": 610,
+        "height": 610,
+        "rawWidth": 612,
+        "rawHeight": 612,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -305,
+            -305,
+            0,
+            305,
+            -305,
+            0,
+            -305,
+            305,
+            0,
+            305,
+            305,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            1,
+            611,
+            611,
+            611,
+            1,
+            1,
+            611,
+            1
+          ],
+          "nuv": [
+            0.0016339869281045752,
+            0.0016339869281045752,
+            0.9983660130718954,
+            0.0016339869281045752,
+            0.0016339869281045752,
+            0.9983660130718954,
+            0.9983660130718954,
+            0.9983660130718954
+          ],
+          "minPos": [
+            -305,
+            -305,
+            0
+          ],
+          "maxPos": [
+            305,
+            305,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "8712c6ec-902f-4dc6-a1da-32562bb919f3@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "8712c6ec-902f-4dc6-a1da-32562bb919f3@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/setting.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/setting.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "552db01a-5dcc-4d33-a6b6-375a2aa0bd3b",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "552db01a-5dcc-4d33-a6b6-375a2aa0bd3b@6c48a",
+      "displayName": "setting",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "552db01a-5dcc-4d33-a6b6-375a2aa0bd3b",
+        "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": "552db01a-5dcc-4d33-a6b6-375a2aa0bd3b@f9941",
+      "displayName": "setting",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 6,
+        "trimY": 6,
+        "width": 80,
+        "height": 80,
+        "rawWidth": 92,
+        "rawHeight": 92,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -40,
+            -40,
+            0,
+            40,
+            -40,
+            0,
+            -40,
+            40,
+            0,
+            40,
+            40,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            6,
+            86,
+            86,
+            86,
+            6,
+            6,
+            86,
+            6
+          ],
+          "nuv": [
+            0.06521739130434782,
+            0.06521739130434782,
+            0.9347826086956522,
+            0.06521739130434782,
+            0.06521739130434782,
+            0.9347826086956522,
+            0.9347826086956522,
+            0.9347826086956522
+          ],
+          "minPos": [
+            -40,
+            -40,
+            0
+          ],
+          "maxPos": [
+            40,
+            40,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "552db01a-5dcc-4d33-a6b6-375a2aa0bd3b@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "552db01a-5dcc-4d33-a6b6-375a2aa0bd3b@6c48a"
+  }
+}

BIN
assets/bundle/gui/eliminate/texture/首页.png


+ 134 - 0
assets/bundle/gui/eliminate/texture/首页.png.meta

@@ -0,0 +1,134 @@
+{
+  "ver": "1.0.27",
+  "importer": "image",
+  "imported": true,
+  "uuid": "b6730247-7e74-4835-aa85-80b63f1df3e4",
+  "files": [
+    ".json",
+    ".png"
+  ],
+  "subMetas": {
+    "6c48a": {
+      "importer": "texture",
+      "uuid": "b6730247-7e74-4835-aa85-80b63f1df3e4@6c48a",
+      "displayName": "首页",
+      "id": "6c48a",
+      "name": "texture",
+      "userData": {
+        "wrapModeS": "clamp-to-edge",
+        "wrapModeT": "clamp-to-edge",
+        "imageUuidOrDatabaseUri": "b6730247-7e74-4835-aa85-80b63f1df3e4",
+        "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": "b6730247-7e74-4835-aa85-80b63f1df3e4@f9941",
+      "displayName": "首页",
+      "id": "f9941",
+      "name": "spriteFrame",
+      "userData": {
+        "trimType": "auto",
+        "trimThreshold": 1,
+        "rotated": false,
+        "offsetX": 0,
+        "offsetY": 0,
+        "trimX": 0,
+        "trimY": 0,
+        "width": 1080,
+        "height": 2400,
+        "rawWidth": 1080,
+        "rawHeight": 2400,
+        "borderTop": 0,
+        "borderBottom": 0,
+        "borderLeft": 0,
+        "borderRight": 0,
+        "packable": true,
+        "pixelsToUnit": 100,
+        "pivotX": 0.5,
+        "pivotY": 0.5,
+        "meshType": 0,
+        "vertices": {
+          "rawPosition": [
+            -540,
+            -1200,
+            0,
+            540,
+            -1200,
+            0,
+            -540,
+            1200,
+            0,
+            540,
+            1200,
+            0
+          ],
+          "indexes": [
+            0,
+            1,
+            2,
+            2,
+            1,
+            3
+          ],
+          "uv": [
+            0,
+            2400,
+            1080,
+            2400,
+            0,
+            0,
+            1080,
+            0
+          ],
+          "nuv": [
+            0,
+            0,
+            1,
+            0,
+            0,
+            1,
+            1,
+            1
+          ],
+          "minPos": [
+            -540,
+            -1200,
+            0
+          ],
+          "maxPos": [
+            540,
+            1200,
+            0
+          ]
+        },
+        "isUuid": true,
+        "imageUuidOrDatabaseUri": "b6730247-7e74-4835-aa85-80b63f1df3e4@6c48a",
+        "atlasUuid": ""
+      },
+      "ver": "1.0.12",
+      "imported": true,
+      "files": [
+        ".json"
+      ],
+      "subMetas": {}
+    }
+  },
+  "userData": {
+    "type": "sprite-frame",
+    "hasAlpha": true,
+    "fixAlphaTransparencyArtifacts": false,
+    "redirect": "b6730247-7e74-4835-aa85-80b63f1df3e4@6c48a"
+  }
+}

+ 16 - 5
assets/script/game/account/model/AccountModelComp.ts

@@ -4,7 +4,7 @@
  * @Author: dgflash
  * @Date: 2021-11-12 10:02:31
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-03-31 15:35:26
+ * @LastEditTime: 2025-04-01 18:49:12
  */
 import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
 
@@ -16,12 +16,23 @@ export class AccountModelComp extends ecs.Comp {
     /** 账号名 */
     AccountName: string = null!;
     /**玩家UID */
-    uid: number = -1;
+    Uid: number = -1;
     /**玩家头像*/
-    head: string = null!
+    HeadUrl: string = null!
+    /**当前关卡--默认从0开始*/
+    CurLevel: number = 0;
+    /**游戏币*/
+    GameCoin: number = 0;
+    /**红包币*/
+    CashCoin:number = 0;
+
     reset() {
         this.AccountName = null!;
-        this.uid = -1;
-        this.head = null!;
+        this.Uid = -1;
+        this.HeadUrl = null!;
+        this.CurLevel = 0;
+        this.GameCoin = 0;
+        this.CashCoin = 0;
     }
+    
 }

+ 3 - 1
assets/script/game/common/config/GameEvent.ts

@@ -14,5 +14,7 @@ export enum GameEvent {
     /**重新开始 */
     RestartGame = "RestartGame",
     /**复活 */
-    Resurrection = "Resurrection"
+    Resurrection = "Resurrection",
+    /**微信登录成功*/
+    WechatLoginSuss = "WechatLoginSuss"
 }

+ 43 - 151
assets/script/game/common/manager/CocosHandler.ts

@@ -1,22 +1,36 @@
+/*
+ * @Author: mojunshou 1637302775@qq.com
+ * @Date: 2025-03-31 10:45:44
+ * @LastEditors: mojunshou 1637302775@qq.com
+ * @LastEditTime: 2025-04-01 18:35:01
+ * @Description: CocosHandler 处理类负责与安卓交互
+ */
 import { native } from 'cc';
 import { _decorator, Component, Node } from 'cc';
 import { DeviceUtil } from 'db://oops-framework/core/utils/DeviceUtil';
-import { GameComponent } from 'db://oops-framework/module/common/GameComponent';
 import { smc } from '../SingletonModuleComp';
 import { ecs } from 'db://oops-framework/libs/ecs/ECS';
 import { Account } from '../../account/Account';
+import { oops } from 'db://oops-framework/core/Oops';
+import { GameEvent } from '../config/GameEvent';
 const { ccclass, property } = _decorator;
 
+type CocosHandlerType = {
+    method: string;
+    param: string;
+}
+
+
 @ccclass('CocosHandler')
-export class CocosHandler extends GameComponent {
+export class CocosHandler {
 
     // 单例模式
-    private static instance: CocosHandler;
-    public static getInstance(): CocosHandler {
-        if (!CocosHandler.instance) {
-            CocosHandler.instance = new CocosHandler();
+    private static _inst: CocosHandler;
+    public static get inst(): CocosHandler {
+        if (!this._inst) {
+            this._inst = new CocosHandler();
         }
-        return CocosHandler.instance;
+        return this._inst;
     }
 
 
@@ -30,11 +44,11 @@ export class CocosHandler extends GameComponent {
     }
 
     // 发送消息到 Android
-    public async sendMessageToAndroid(json: Object) {
+    public async sendMessageToAndroid(json: CocosHandlerType) {
         if (DeviceUtil.isAndroid && DeviceUtil.isNative) {
             let jsonStr = JSON.stringify(json);
             console.log("js传给安卓的数据打印>>>>", jsonStr);
-            let result = await native.reflection.callStaticMethod("com/cocos/game/AndroidHandler", "onCocosMessage", "(Ljava/lang/String;)Ljava/lang/String;", jsonStr);
+            let result = await native.reflection.callStaticMethod("com/atmob/cocos/bridge/AtmobCocosBridge", "call", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", jsonStr);
             //等待上边安卓返回数据,再执行下边代码
             if (result) {
                 let android_result = JSON.parse(result);
@@ -44,163 +58,41 @@ export class CocosHandler extends GameComponent {
         }
     }
 
-
-    //显示广告
-    showBannerAd() {
-
-
-    }
-
-
-    async login(username: string, password: string) {
-        //区分普通登录,微信登录,游客登录
-        let obj = {
-            method: "login",
-            callback: "StartViewComp.androidCallJs",            //安卓完成业务的回调JS函数
-            data: {
-                username: username,
-                password: password,
-                type: 1   //登录类型
-            }
-        }
-        let result = await this.sendMessageToAndroid(obj);
-        return result;
-    }
-
-
-
-    //用户注册
-    async user_register(username: string, password: string) {
-        let obj = {
-            method: "user_register",
-            callback: "",
-            data: {
-                username: username,
-                password: password
-            }
-        }
-        let result = await this.sendMessageToAndroid(obj);
-        return result;
-    }
-
     //微信登录
     async wechat_login() {
-        let obj = {
-            method: "wechat_login",
-            callback: "",
-            data: {
-
-            }
-        }
-        let result = await this.sendMessageToAndroid(obj);
-        // let account = ecs.getEntity<Account>(Account);
-        // account.AccountModel.AccountName
-        // smc.account.AccountModel.AccountName =
-        return result;
-    }
-
-
-
-    //用户提现
-    async user_withdrawal(user_id: string) {
-        let obj = {
-            method: "user_withdrawal",
-            callback: "",
-            data: {
-
-
+        const param = {
+            "appId": "wx1234567890",
+            "callback":
+            {
+                "onSuccess": "CocosHandler.inst.wechat_login_success",
+                "onFaile": "CocosHandler.inst.wechat_login_fail"
             }
         }
-        let result = await this.sendMessageToAndroid(obj);
-        return result;
-    }
-
-    //获取提现记录
-    async get_withdrawal_record(user_id: string) {
-        let obj = {
-            method: "get_withdrawal_record",
-            callback: "",
-            data: {
 
-            }
-        }
-        let result = await this.sendMessageToAndroid(obj);
-        return result;
-    }
-
-    //获取用户信息
-    async get_user_info(user_id: string) {
-        let obj = {
-            method: "get_user_info",
-            callback: "",
-            data: {
-                user_id: user_id
-            }
-        }
-        let result = await this.sendMessageToAndroid(obj);
-        return result;
-    }
-
-    //现金提现
-    async cash_withdrawal(user_id: string, amount: string) {
-        let obj = {
-            method: "cash_withdrawal",
-            callback: "",
-            data: {
-                user_id: user_id,
-                amount: amount
-            }
+        const data: CocosHandlerType = {
+            method: "auth.wechat",
+            param: JSON.stringify(param)
         }
-        let result = await this.sendMessageToAndroid(obj);
-        return result;
-    }
 
-
-    //红包提现
-    async red_packet_withdrawal(user_id: string, amount: string) {
-        let obj = {
-            method: "red_packet_withdrawal",
-            callback: "",
-            data: {
-                user_id: user_id,
-                amount: amount
-            }
-        }
-        let result = await this.sendMessageToAndroid(obj);
+        let result = await this.sendMessageToAndroid(data);
         return result;
     }
 
 
-    //复制文字
-    async copy_text(text: string) {
-        let obj = {
-            method: "copy_text",
-            callback: "",
-            data: {
-                text: text
-            }
-        }
-        let result = await this.sendMessageToAndroid(obj);
-        return result;
+    //===================安卓回调Cocos======================
+    //微信登录成功回调
+    wechat_login_success(str: string) {
+        console.log("微信登录成功回调", str);
+        //保存数据
+        oops.message.dispatchEvent(GameEvent.WechatLoginSuss);
     }
 
-
-    //获取远程CDN地址,这用和安卓交互
-
-    //获取游戏数据信息--返回后才能进入游戏渲染数据,也可以登录后推送过来
-    async get_game_data() {
-        let obj = {
-            method: "get_game_data",
-            callback: "",
-            data: {
-
-            }
-        }
-        let result = await this.sendMessageToAndroid(obj);
-        return result;
+    //微信登录失败回调
+    wechat_login_fail(str: string) {
+        console.log("微信登录失败回调", str);
+        oops.gui.toast("微信登录失败");
     }
 
-
     //安卓直接调用广告回调,显示失败还是成功,成功提供什么奖励,失败又怎么做
     async ad_callback(ad_type: string, ad_status: string, ad_reward: string) {
 

+ 9 - 0
assets/script/game/eliminate/block.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.2.0",
+  "importer": "directory",
+  "imported": true,
+  "uuid": "2dead0be-7434-446c-b9f3-4589c9607425",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 14 - 0
assets/script/game/eliminate/config/GameData.ts

@@ -0,0 +1,14 @@
+/*
+ * @Author: mojunshou 1637302775@qq.com
+ * @Date: 2025-04-01 17:04:11
+ * @LastEditors: mojunshou 1637302775@qq.com
+ * @LastEditTime: 2025-04-01 17:06:51
+ * @Description: 游戏数据定义
+ */
+export default class GameData {
+    //纯本地存储
+    public static showGuild: boolean = true;
+
+
+
+}

+ 1 - 1
assets/script/game/eliminate/view/BlockItemView.ts.meta

@@ -2,7 +2,7 @@
   "ver": "4.0.24",
   "importer": "typescript",
   "imported": true,
-  "uuid": "30ac3329-73c4-44dd-8a2a-9dd20bcff004",
+  "uuid": "17b76f18-2853-4415-8234-3b86ed0875c0",
   "files": [],
   "subMetas": {},
   "userData": {}

+ 0 - 268
assets/script/game/eliminate/view/BlockItemView.ts

@@ -1,268 +0,0 @@
-/*
- * @Author: mojunshou 1637302775@qq.com
- * @Date: 2025-03-27 15:04:15
- * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-03-27 15:21:52
- * @Description: 
- */
-import { tween, Color, Sprite, UITransform, UIOpacity, v3 } from 'cc';
-import { _decorator, EventTouch, Prefab, SpriteFrame, Vec3, Node } from 'cc';
-import { GameComponent } from "db://oops-framework/module/common/GameComponent";
-
-const { ccclass, property } = _decorator;
-
-// 定义方块类型
-export enum BlockColorType {
-    RED = 0,
-    BLUE = 1,
-    GREEN = 2,
-    YELLOW = 3,
-    PURPLE = 4
-}
-
-// 定义方块形状模板(每种形状的格子偏移位置)
-export const BLOCK_SHAPES = [
-    // I形状
-    [[0, 0], [0, 1], [0, 2]],
-    // L形状
-    [[0, 0], [0, 1], [1, 1]],
-    // 反L形状
-    [[0, 0], [0, 1], [-1, 1]],
-    // T形状
-    [[0, 0], [-1, 0], [1, 0], [0, 1]],
-    // 方形
-    [[0, 0], [1, 0], [0, 1], [1, 1]],
-    // Z形状
-    [[0, 0], [1, 0], [0, 1], [-1, 1]],
-    // S形状
-    [[0, 0], [-1, 0], [0, 1], [1, 1]]
-];
-
-/** 显示对象控制 */
-@ccclass('BlockItemView')
-export class BlockItemView extends GameComponent {
-    @property([SpriteFrame])
-    blockSprites: SpriteFrame[] = [];
-
-    @property(Prefab)
-    cellPrefab: Prefab = null!;
-
-    // 方块当前类型
-    private blockType: BlockColorType = BlockColorType.RED;
-    // 方块形状索引
-    private shapeIndex: number = 0;
-    // 方块图标索引
-    private iconIndex: number = 0;
-    // 方块单元格尺寸
-    private cellSize: number = 82;
-    // 方块单元格节点数组
-    private cells: Node[] = [];
-    // 方块当前形状表示(格子坐标偏移)
-    private currentShape: number[][] = [];
-    // 是否可以旋转
-    private isRotatable: boolean = false;
-    // 是否可以拖拽
-    private isDraggable: boolean = true;
-    // 是否正在拖拽
-    private isDragging: boolean = false;
-    // 原始位置(拖拽失败时返回)
-    private originalPosition: Vec3 = null!;
-
-
-    protected start() {
-        this.originalPosition = this.node.position.clone();
-        this.initEventListeners();
-    }
-
-    /**
-     * 初始化事件监听
-    */
-    initEventListeners() {
-        this.node.on(Node.EventType.TOUCH_START, this.onTouchStart, this);
-        this.node.on(Node.EventType.TOUCH_MOVE, this.onTouchMove, this);
-        this.node.on(Node.EventType.TOUCH_END, this.onTouchEnd, this);
-        this.node.on(Node.EventType.TOUCH_CANCEL, this.onTouchEnd, this);
-    }
-
-    /**
-     * 触摸开始事件
-     */
-    onTouchStart(event: EventTouch) {
-        console.log("onTouchStart");
-        if (!this.isDraggable) return;
-        this.isDragging = true;
-        this.originalPosition = this.node.position.clone();
-
-        // 通知游戏组件方块被选中
-        this.node.emit('block_selected', this);
-    }
-
-    /**
-     * 触摸移动事件
-     */
-    onTouchMove(event: EventTouch) {
-        if (!this.isDragging) return;
-
-        const delta = event.getDelta();
-        this.node.setPosition(
-            this.node.position.x + delta.x,
-            this.node.position.y + delta.y,
-            this.node.position.z
-        );
-
-        // 通知游戏组件方块正在移动
-        this.node.emit('block_moving', {
-            block: this,
-            position: this.node.position
-        });
-    }
-
-    /**
-     * 触摸结束事件
-     */
-    onTouchEnd(event: EventTouch) {
-        if (!this.isDragging) return;
-
-        this.isDragging = false;
-
-        // 通知游戏组件方块放置
-        this.node.emit('block_placed', {
-            block: this,
-            position: this.node.position
-        });
-    }
-
-
-    /**
-     * 返回原始位置
-     */
-    returnToOriginalPosition() {
-        tween(this.node)
-            .to(0.3, { position: this.originalPosition })
-            .start();
-    }
-
-    /**
-     * 移动到指定位置
-     */
-    moveTo(position: Vec3) {
-        tween(this.node)
-            .to(0.3, { position: position })
-            .start();
-    }
-
-    /**
-     * 高亮显示(可放置提示)
-     */
-    highlight(isValid: boolean) {
-        const color = isValid ? new Color(150, 255, 150, 255) : new Color(255, 150, 150, 255);
-        for (const cell of this.cells) {
-            const sprite = cell.getComponent(Sprite);
-            if (sprite) {
-                sprite.color = color;
-            }
-        }
-    }
-
-    /**
-     * 取消高亮
-     */
-    resetHighlight() {
-        for (const cell of this.cells) {
-            const sprite = cell.getComponent(Sprite);
-            if (sprite) {
-                sprite.color = Color.WHITE;
-            }
-        }
-    }
-
-    /**
-     * 获取当前方块形状中所有单元格的世界坐标
-     */
-    getCellWorldPositions(): Vec3[] {
-        const positions: Vec3[] = [];
-        for (const cell of this.cells) {
-            const transform = this.node.getComponent(UITransform);
-            if (transform) {
-                positions.push(transform.convertToWorldSpaceAR(cell.position));
-            }
-        }
-        return positions;
-    }
-
-    /**
-     * 获取当前方块类型
-     */
-    getBlockType(): BlockColorType {
-        return this.blockType;
-    }
-
-    /**
-     * 获取当前方块形状
-     */
-    getCurrentShape(): number[][] {
-        return this.currentShape;
-    }
-
-    /**
-     * 执行消除动画
-     */
-    playEliminateAnimation(callback?: Function) {
-        // 播放消除动画
-        const duration = 0.3;
-
-        for (const cell of this.cells) {
-            // 确保有 UIOpacity 组件
-            let uiOpacity = cell.getComponent(UIOpacity);
-            if (!uiOpacity) {
-                uiOpacity = cell.addComponent(UIOpacity);
-            }
-
-            tween(cell)
-                .to(duration, { scale: v3(0, 0, 1) })
-                .start();
-
-            tween(uiOpacity)
-                .to(duration, { opacity: 0 })
-                .start();
-        }
-
-        // 动画结束后执行回调
-        this.scheduleOnce(() => {
-            if (callback) callback();
-        }, duration);
-    }
-
-    /**
-     * 设置是否可拖拽
-     */
-    setDraggable(draggable: boolean) {
-        this.isDraggable = draggable;
-    }
-
-    /**
-     * 父节点点击事件
-     */
-    onParentNodeClicked(event: EventTouch) {
-        if (!this.isDraggable) return;
-        this.isDragging = true;
-        this.originalPosition = this.node.position.clone();
-
-        // 通知游戏组件方块被选中
-        this.node.emit('block_selected', this);
-    }
-
-
-    /**
-     * 设置this.cellPrefab下边icon 的样式
-     * 
-     */
-    setBlockSpriteFrame(spriteFrame: SpriteFrame) {
-        for (const cell of this.cells) {
-            const sprite = cell.getChildByName("icon")?.getComponent(Sprite);
-            if (sprite) {
-                sprite.spriteFrame = spriteFrame;
-            }
-        }
-    }
-}

+ 218 - 9
assets/script/game/eliminate/view/EliminateViewComp.ts

@@ -2,7 +2,7 @@
  * @Author: mojunshou 1637302775@qq.com
  * @Date: 2025-03-20 15:01:09
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-04-01 15:42:00
+ * @LastEditTime: 2025-04-02 11:46:35
  * @Description: 消除游戏主场景
  */
 import { _decorator, Color, EventTouch, instantiate, JsonAsset, Label, Node, Prefab, randomRangeInt, Sprite, Toggle, tween, UITransform, Vec2, Vec3, Widget } from "cc";
@@ -13,7 +13,6 @@ import { LabelChange } from "db://oops-framework/libs/gui/label/LabelChange";
 import { CCComp } from "db://oops-framework/module/common/CCComp";
 import { GameEvent } from "../../common/config/GameEvent";
 import { UIID } from "../../common/config/GameUIConfig";
-import { BlockItemView } from "./BlockItemView";
 import { Button } from "cc";
 
 const { ccclass, property } = _decorator;
@@ -57,7 +56,6 @@ interface GridData {
     gridNode: Node | null      // 网格节点
     row: number,        // 行
     col: number,        // 列
-    gridColorKey: string | null,
     type: number,       // 类型--gridColorKey
 }
 
@@ -82,7 +80,6 @@ interface BrickData {
     gridConfig: Grids[],
     deg: number,
     brickNode: Node | null,
-    gridColorKey: string | null,
     brickInitPos: Vec3, // 方块初始位置
     type: number,   // 方块类型--gridColorKey
 }
@@ -138,7 +135,7 @@ export class EliminateViewComp extends CCComp {
     //游戏配置行列
     private rows: number = 8;       // 行数
     private cols: number = 8;       // 列数
-    private itemSize: number = 82;  // 格子大小
+    private itemSize: number = 76.25;  // 格子大小
     private brickNum: number = 3;   // 砖块数量
 
     private gameState: GameState = GameState.READY;
@@ -342,7 +339,6 @@ export class EliminateViewComp extends CCComp {
             gridNode: null,
             row: row,
             col: column,
-            gridColorKey: null,
             type: 0
         };
     }
@@ -459,7 +455,6 @@ export class EliminateViewComp extends CCComp {
             gridConfig: brickConfig['gridConfig'],
             deg: 0,
             brickNode: null,
-            gridColorKey: randomIndex.toString(),
             brickInitPos: new Vec3(),
             rotateTag: false,
             type: randomIndex,
@@ -488,6 +483,7 @@ export class EliminateViewComp extends CCComp {
             brickData.brickInitPos = brickData.brickNode.getWorldPosition()
         }
         this.brickAddEvent(brickData);
+        //2508801946299286
     }
 
 
@@ -744,7 +740,6 @@ export class EliminateViewComp extends CCComp {
                 // 放置方块到网格
                 this.editingData.gridList.forEach(grid => {
                     grid.status = CellState.FILLED;
-                    grid.gridColorKey = this.editingData.brickData!.gridColorKey;
                     grid.type = this.editingData.brickData!.type;
                     this.generateGrid(grid);
                 });
@@ -913,6 +908,8 @@ export class EliminateViewComp extends CCComp {
         // 更新总分
         this.score += score;
         this.lab_score.string = this.score.toString();
+        //计算总分够一局没有,够就马上停止,展示界面
+
     }
 
     // 显示消除次数动画
@@ -1415,7 +1412,6 @@ export class EliminateViewComp extends CCComp {
                     gridNode: null,
                     row: gridData.row,
                     col: gridData.col,
-                    gridColorKey: gridData.gridColorKey,
                     type: gridData.type,
                 })
             }
@@ -1480,9 +1476,222 @@ export class EliminateViewComp extends CCComp {
         //自动放置
         this.autoState = !this.autoState;
         this.initButtonState(this.autoState);
+        if (this.autoState) {
+            this.gameState = GameState.PLAYING;
+            this.executeAutoPlace()
+        }
+
+    }
+
+
+    executeAutoPlace() {
+        if (!this.autoState || this.gameState !== GameState.PLAYING || this.editingFlag) {
+            return
+        }
+        console.log("开始自动放置")
+        const bestPlacement = this.findBestPlacement()
+        if (!bestPlacement) {
+            // 所有方块都无法放置,游戏结束
+            this.autoState = false
+            this.gameOver()
+            return
+        }
+
+        // 执行放置
+        this.placeBrickAtPosition(bestPlacement)
+    }
+
+    findBestPlacement() {
+        const placements = []
+
+        // 对每个方块计算所有可能的放置位置和分数
+        for (let brickIndex = 0; brickIndex < this.bricksList.length; brickIndex++) {
+            const brickData = this.bricksList[brickIndex]
+
+            // 检查不同旋转状态
+            let gridConfigs = [brickData.gridConfig]
+            let degrees = [brickData.deg]
+
+            // 如果可旋转,计算所有旋转状态
+            if (brickData.rotateFlag) {
+                for (let i = 1; i <= 3; i++) {
+                    const next = this.nextGridRotate(
+                        i === 1 ? brickData.gridConfig : gridConfigs[i - 1],
+                        i === 1 ? brickData.deg : degrees[i - 1]
+                    )
+                    gridConfigs.push(next.gridConfig)
+                    degrees.push(next.deg)
+                }
+            }
+
+            // 遍历所有网格位置
+            for (let rowIndex = 0; rowIndex < this.rows; rowIndex++) {
+                for (let columnIndex = 0; columnIndex < this.cols; columnIndex++) {
+                    // 对每个旋转状态检查
+                    for (let rotateIndex = 0; rotateIndex < gridConfigs.length; rotateIndex++) {
+                        const currentGridConfig = gridConfigs[rotateIndex]
+                        const currentDeg = degrees[rotateIndex]
+
+                        // 检查是否可以放置
+                        if (this.moveIf(rowIndex, columnIndex, currentGridConfig)) {
+                            // 复制网格并模拟放置
+                            const gridList = this.copyGridList()
+                            currentGridConfig.forEach((gridConfigData) => {
+                                const r = gridConfigData.row + rowIndex
+                                const c = gridConfigData.column + columnIndex
+                                gridList[r][c].status = CellState.FILLED
+                                // gridList[r][c].gridColorKey = brickData.gridColorKey
+                                gridList[r][c].type = brickData.type;
+                            })
+
+                            // 检查是否可以消除,计算分数
+                            const elimination = this.gridEliminateCheck(gridList)
+                            let score = 0
+
+                            if (elimination.gridEliminateList.length > 0) {
+                                // 计算消除得分
+                                for (let i = 1; i <= elimination.eliminateRowNum; i++) {
+                                    score += this.cols * i
+                                }
+                                for (let i = 1; i <= elimination.eliminateColumnNum; i++) {
+                                    score += this.rows * i
+                                }
+                            }
+
+                            // 记录此放置选项
+                            placements.push({
+                                brickIndex,
+                                brickData,
+                                rowIndex,
+                                columnIndex,
+                                gridConfig: currentGridConfig,
+                                deg: currentDeg,
+                                score,
+                                canEliminate: elimination.gridEliminateList.length > 0
+                            })
+                        }
+                    }
+                }
+            }
+        }
+
+        // 按优先级排序:最高分 > 有分数 > 没有分数但可放置
+        placements.sort((a, b) => {
+            // 首先按分数排序
+            if (a.score !== b.score) {
+                return b.score - a.score
+            }
+            // 其次按是否可消除排序
+            if (a.canEliminate !== b.canEliminate) {
+                return a.canEliminate ? -1 : 1
+            }
+            // 最后按照方块优先级排序(底部的方块优先)
+            return a.brickIndex - b.brickIndex
+        })
+
+        return placements.length > 0 ? placements[0] : null
+    }
+
+    // ... existing code ...
+
+    placeBrickAtPosition(placement) {
+        // 获取方块数据
+        const brickData = placement.brickData
+        const index = this.bricksList.findIndex(data => data === brickData)
+        if (index === -1) {
+            console.error("无法找到要放置的方块:", brickData)
+            return
+        }
+
+        // 从待选区移除方块
+        this.editingData.brickData = this.bricksList.splice(index, 1)[0]
+
+        // 如果需要旋转,执行旋转
+        if (brickData.deg !== placement.deg) {
+            // 更新方块配置和角度
+            brickData.gridConfig = placement.gridConfig
+            brickData.deg = placement.deg
+            // 添加旋转动画
+            tween(brickData.brickNode).to(0.1, { angle: placement.deg }).start()
+        }
+
+        // 准备网格列表
+        this.editingData.gridList = []
+        placement.gridConfig.forEach((gridConfigData: GridConfigData) => {
+            const r = gridConfigData.row + placement.rowIndex
+            const c = gridConfigData.column + placement.columnIndex
+            this.editingData.gridList.push(this.gridList[r][c])
+        })
+
+        // 计算目标位置 - 使用中间位置作为基准
+        let centerPos = new Vec3(0, 0, 0);
+        let validGridCount = 0;
+
+        // 计算所有网格的平均位置
+        this.editingData.gridList.forEach(grid => {
+            if (grid.gridNode) {
+                const worldPos = grid.gridNode.getWorldPosition();
+                centerPos.add(worldPos);
+                validGridCount++;
+            }
+        });
+
+        // 计算平均位置
+        if (validGridCount > 0) {
+            centerPos.x /= validGridCount;
+            centerPos.y /= validGridCount;
+            centerPos.z /= validGridCount;
+        } else {
+            // 如果没有有效网格,使用第一个网格的位置作为后备
+            const targetGridData = this.editingData.gridList[0];
+            if (targetGridData && targetGridData.gridNode) {
+                centerPos = targetGridData.gridNode.getWorldPosition();
+            }
+        }
 
+        // 添加到移动节点里进行移动
+        const originPos = brickData.brickNode.getWorldPosition()
+        brickData.brickNode.setParent(this.moveNode)
+        brickData.brickNode.setWorldPosition(originPos)
+
+        // 使用动画移动到目标位置--这里的最终放置有问题
+        tween(brickData.brickNode)
+            .to(2, { worldPosition: centerPos })
+            .call(() => {
+                // 动画完成后修改格子状态
+                this.editingData.gridList.forEach((gridData) => {
+                    gridData.status = CellState.FILLED
+                    gridData.type = this.editingData.brickData.type
+                    this.generateGrid(gridData)
+                })
+
+                // 销毁方块
+                this.editingData.brickData.brickNode.destroy()
+
+                // 添加新方块
+                this.addBrick(this.editingData.brickData.index)
+
+                // 检查消除和游戏状态
+                this.gridEliminate().then(() => {
+                    this.prompt(false).then((value: unknown) => {
+                        const promptFlag = value as boolean;
+                        if (!promptFlag) {
+                            this.autoState = false
+                            this.gameOver()
+                        } else if (this.autoState) {
+                            // 继续自动放置
+                            this.scheduleOnce(() => {
+                                this.executeAutoPlace()
+                            }, 0.3)
+                        }
+                        this.editingFlag = false
+                    })
+                })
+            })
+            .start()
     }
 
+
     //重新开始
     private restartGame() {
         if (this.gameState === GameState.READY) return;

+ 10 - 1
assets/script/game/eliminate/view/GamePassView.ts

@@ -2,7 +2,7 @@
  * @Author: mojunshou 1637302775@qq.com
  * @Date: 2025-03-21 14:43:24
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-03-21 15:00:43
+ * @LastEditTime: 2025-04-01 17:01:20
  * @Description: 游戏通关弹窗
  */
 import { _decorator } from 'cc';
@@ -13,6 +13,15 @@ const { ccclass, property } = _decorator;
 /** 显示对象控制 */
 @ccclass('GamePassView')
 export class GamePassView extends GameComponent {
+    //提示Node
+    @property(Node)
+    private _tipsNode: Node = null!;
+
+    //引导小手
+    @property(Node)
+    private _guildNode: Node = null!;
+
+
     protected start() {
 
     }

+ 14 - 0
assets/script/game/eliminate/view/GuildTipsView.ts

@@ -0,0 +1,14 @@
+import { _decorator, Component, Node } from 'cc';
+const { ccclass, property } = _decorator;
+
+@ccclass('GuildTipsView')
+export class GuildTipsView extends Component {
+    start() {
+
+    }
+
+    update(deltaTime: number) {
+        
+    }
+}
+


+ 9 - 0
assets/script/game/eliminate/view/GuildTipsView.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.24",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "fe66841e-5071-4221-ac81-d9fc7f48732b",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 11 - 2
assets/script/game/initialize/view/LoadingViewComp.ts

@@ -2,7 +2,7 @@
  * @Author: mojunshou 1637302775@qq.com
  * @Date: 2025-03-19 16:23:51
  * @LastEditors: mojunshou 1637302775@qq.com
- * @LastEditTime: 2025-03-31 15:06:48
+ * @LastEditTime: 2025-04-01 18:30:47
  * @Description: loading界面
  */
 import { _decorator, sys } from "cc";
@@ -17,6 +17,7 @@ import { AndroidMessageCenter } from '../../common/manager/AndroidMessageCenter'
 import { smc } from "../../common/SingletonModuleComp";
 import { EliminateViewComp } from "../../eliminate/view/EliminateViewComp";
 import { CocosHandler } from "../../common/manager/CocosHandler";
+import { GameEvent } from "../../common/config/GameEvent";
 const { ccclass, property } = _decorator;
 
 /** 游戏资源加载 */
@@ -70,6 +71,14 @@ export class LoadingViewComp extends CCVMParentComp {
 
     private addEvent() {
         this.on(AndroidEvent.AgreePrivacy, this.onAgreePrivacy, this);
+        this.on(GameEvent.WechatLoginSuss, this.loginSuss, this)
+    }
+
+    private loginSuss() {
+        //关闭按钮
+
+
+        //加载资源
 
 
     }
@@ -134,7 +143,7 @@ export class LoadingViewComp extends CCVMParentComp {
     private async btn_wxlogin() {
         //跟安卓交互
         //登录完要隐藏微信按钮然后加载进度
-        let result = await CocosHandler.getInstance().wechat_login();
+        let result = await CocosHandler.inst.wechat_login();
         if (result.code) {
 
             //登录成功