任一存 2 yıl önce
ebeveyn
işleme
550b4b0f9a
81 değiştirilmiş dosya ile 82 ekleme ve 125 silme
  1. 2 1
      package.json
  2. 1 1
      src/assets/images/jigsaw-game-1/compound.svg
  3. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/1.台基.png
  4. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/1.马路.png
  5. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/2.基座.png
  6. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/2.河堤.png
  7. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/3.桥体.png
  8. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/3.立柱.png
  9. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/4.夹柱石.png
  10. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/4.桥护栏.png
  11. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/5.亭子基座.png
  12. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/5.横梁.png
  13. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/6.亭子立柱.png
  14. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/6.斗拱.png
  15. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/7.亭子顶.png
  16. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/7.雀替.png
  17. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/8.石碑.png
  18. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/8.龙凤榜.png
  19. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/9.桃树.png
  20. BIN
      src/assets/images/jigsaw-game-1/jigsaw-shade/9.楼.png
  21. BIN
      src/assets/images/jigsaw-game-1/jigsaw/1.台基.png
  22. BIN
      src/assets/images/jigsaw-game-1/jigsaw/1.马路.png
  23. BIN
      src/assets/images/jigsaw-game-1/jigsaw/2.基座.png
  24. BIN
      src/assets/images/jigsaw-game-1/jigsaw/2.河堤.png
  25. BIN
      src/assets/images/jigsaw-game-1/jigsaw/3.桥体.png
  26. BIN
      src/assets/images/jigsaw-game-1/jigsaw/3.立柱.png
  27. BIN
      src/assets/images/jigsaw-game-1/jigsaw/4.夹柱石.png
  28. BIN
      src/assets/images/jigsaw-game-1/jigsaw/4.桥护栏.png
  29. BIN
      src/assets/images/jigsaw-game-1/jigsaw/5.亭子基座.png
  30. BIN
      src/assets/images/jigsaw-game-1/jigsaw/5.横梁.png
  31. BIN
      src/assets/images/jigsaw-game-1/jigsaw/6.亭子立柱.png
  32. BIN
      src/assets/images/jigsaw-game-1/jigsaw/6.斗拱.png
  33. BIN
      src/assets/images/jigsaw-game-1/jigsaw/7.亭子顶.png
  34. BIN
      src/assets/images/jigsaw-game-1/jigsaw/7.雀替.png
  35. BIN
      src/assets/images/jigsaw-game-1/jigsaw/8.石碑.png
  36. BIN
      src/assets/images/jigsaw-game-1/jigsaw/8.龙凤榜.png
  37. BIN
      src/assets/images/jigsaw-game-1/jigsaw/9.桃树.png
  38. BIN
      src/assets/images/jigsaw-game-1/jigsaw/9.楼.png
  39. 1 78
      src/assets/images/jigsaw-game-5/compound.svg
  40. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/1.道路.png
  41. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/1.马路.png
  42. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/2.水池.png
  43. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/2.河堤.png
  44. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/3.月洞门.png
  45. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/3.桥体.png
  46. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/4.八角亭.png
  47. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/4.桥护栏.png
  48. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/5.亭子基座.png
  49. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/5.凉亭.png
  50. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/6.亭子立柱.png
  51. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/6.建筑地基.png
  52. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/7.书斋.png
  53. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/7.亭子顶.png
  54. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/8.厅堂.png
  55. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/8.石碑.png
  56. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/9.树.png
  57. BIN
      src/assets/images/jigsaw-game-5/jigsaw-shade/9.桃树.png
  58. BIN
      src/assets/images/jigsaw-game-5/jigsaw/1.道路.png
  59. BIN
      src/assets/images/jigsaw-game-5/jigsaw/1.马路.png
  60. BIN
      src/assets/images/jigsaw-game-5/jigsaw/2.水池.png
  61. BIN
      src/assets/images/jigsaw-game-5/jigsaw/2.河堤.png
  62. BIN
      src/assets/images/jigsaw-game-5/jigsaw/3.月洞门.png
  63. BIN
      src/assets/images/jigsaw-game-5/jigsaw/3.桥体.png
  64. BIN
      src/assets/images/jigsaw-game-5/jigsaw/4.八角亭.png
  65. BIN
      src/assets/images/jigsaw-game-5/jigsaw/4.桥护栏.png
  66. BIN
      src/assets/images/jigsaw-game-5/jigsaw/5.亭子基座.png
  67. BIN
      src/assets/images/jigsaw-game-5/jigsaw/5.凉亭.png
  68. BIN
      src/assets/images/jigsaw-game-5/jigsaw/6.亭子立柱.png
  69. BIN
      src/assets/images/jigsaw-game-5/jigsaw/6.建筑地基.png
  70. BIN
      src/assets/images/jigsaw-game-5/jigsaw/7.书斋.png
  71. BIN
      src/assets/images/jigsaw-game-5/jigsaw/7.亭子顶.png
  72. BIN
      src/assets/images/jigsaw-game-5/jigsaw/8.厅堂.png
  73. BIN
      src/assets/images/jigsaw-game-5/jigsaw/8.石碑.png
  74. BIN
      src/assets/images/jigsaw-game-5/jigsaw/9.树.png
  75. BIN
      src/assets/images/jigsaw-game-5/jigsaw/9.桃树.png
  76. 20 4
      src/config.js
  77. 9 0
      src/store/index.js
  78. 3 3
      src/views/Bag.vue
  79. 40 26
      src/views/JigsawGame.vue
  80. 6 6
      src/views/Level3.vue
  81. 0 6
      src/views/TravelRecord.vue

+ 2 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "my-app",
-  "version": "0.0.5",
+  "version": "0.0.6",
   "private": true,
   "scripts": {
     "serve": "vue-cli-service serve --mode dev",
@@ -14,6 +14,7 @@
     "core-js": "^3.8.3",
     "dayjs": "^1.11.7",
     "element-plus": "^2.3.8",
+    "lodash": "^4.17.21",
     "mitt": "^3.0.0",
     "vue": "^3.2.13",
     "vue-router": "^4.0.3",

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 1
src/assets/images/jigsaw-game-1/compound.svg


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/1.台基.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/1.马路.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/2.基座.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/2.河堤.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/3.桥体.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/3.立柱.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/4.夹柱石.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/4.桥护栏.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/5.亭子基座.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/5.横梁.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/6.亭子立柱.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/6.斗拱.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/7.亭子顶.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/7.雀替.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/8.石碑.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/8.龙凤榜.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/9.桃树.png


BIN
src/assets/images/jigsaw-game-1/jigsaw-shade/9.楼.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/1.台基.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/1.马路.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/2.基座.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/2.河堤.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/3.桥体.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/3.立柱.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/4.夹柱石.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/4.桥护栏.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/5.亭子基座.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/5.横梁.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/6.亭子立柱.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/6.斗拱.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/7.亭子顶.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/7.雀替.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/8.石碑.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/8.龙凤榜.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/9.桃树.png


BIN
src/assets/images/jigsaw-game-1/jigsaw/9.楼.png


Dosya farkı çok büyük olduğundan ihmal edildi
+ 1 - 78
src/assets/images/jigsaw-game-5/compound.svg


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/1.道路.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/1.马路.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/2.水池.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/2.河堤.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/3.月洞门.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/3.桥体.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/4.八角亭.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/4.桥护栏.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/5.亭子基座.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/5.凉亭.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/6.亭子立柱.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/6.建筑地基.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/7.书斋.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/7.亭子顶.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/8.厅堂.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/8.石碑.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/9.树.png


BIN
src/assets/images/jigsaw-game-5/jigsaw-shade/9.桃树.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/1.道路.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/1.马路.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/2.水池.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/2.河堤.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/3.月洞门.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/3.桥体.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/4.八角亭.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/4.桥护栏.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/5.亭子基座.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/5.凉亭.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/6.亭子立柱.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/6.建筑地基.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/7.书斋.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/7.亭子顶.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/8.厅堂.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/8.石碑.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/9.树.png


BIN
src/assets/images/jigsaw-game-5/jigsaw/9.桃树.png


+ 20 - 4
src/config.js

@@ -63,6 +63,9 @@ export default {
           lionGender: 'male',
           jigsawNumber: 3,
           jigsawList: [
+            '1.台基.png',
+            '2.基座.png',
+            '3.立柱.png',
 
           ],
           lionSpeach: '当我们来到徽州,总能看见许许多多门洞形状的建筑物,它就是“徽州三绝”之一的牌坊。徽州因为拥有的牌坊数量众多,样式精美,也被誉为“牌坊之乡”。'
@@ -72,6 +75,9 @@ export default {
           lionGender: 'male',
           jigsawNumber: 3,
           jigsawList: [
+            '4.夹柱石.png',
+            '5.横梁.png',
+            '6.斗拱.png',
 
           ],
         },
@@ -80,7 +86,9 @@ export default {
           lionGender: 'male',
           jigsawNumber: 3,
           jigsawList: [
-
+            '7.雀替.png',
+            '8.龙凤榜.png',
+            '9.楼.png',
           ],
         },
       ]
@@ -222,9 +230,17 @@ export default {
         {
           name: '其他建筑类型鉴赏',
           lionGender: 'male',
-          jigsawNumber: 3,
-          jigsawList: [
-
+          jigsawNumber: 9,
+          jigsawList: [
+            '1.道路.png',
+            '2.水池.png',
+            '3.月洞门.png',
+            '4.八角亭.png',
+            '5.凉亭.png',
+            '6.建筑地基.png',
+            '7.书斋.png',
+            '8.厅堂.png',
+            '9.树.png',
           ],
         },
       ]

+ 9 - 0
src/store/index.js

@@ -61,6 +61,15 @@ export default createStore({
         state.gameProgress = resetGameProgress()
       }
     },
+    replayJigsaw(state, sceneL2Id) {
+      try {
+        state.gameProgress.jigsawProgress[sceneL2Id].isJigsawDone = false
+        localStorage.setItem(`HuiZhouGuJianZhuProgress-v${process.env.VUE_APP_VERSION}`, JSON.stringify(state.gameProgress))
+      } catch (error) {
+        console.error(error)
+        state.gameProgress = resetGameProgress()
+      }
+    },
     recordBuildProgress(state, progress) {
       try {
         state.gameProgress.buildProgress = progress

+ 3 - 3
src/views/Bag.vue

@@ -93,7 +93,7 @@ export default {
           height: 204,
           top: 420,
           left: 40,
-          isOpen: false,
+          isOpen: true,
         },
         {
           idxInConfig: 3,
@@ -109,7 +109,7 @@ export default {
           height: 186,
           top: 634,
           left: 283,
-          isOpen: false,
+          isOpen: true,
         },
         {
           idxInConfig: 2,
@@ -243,7 +243,7 @@ export default {
     }
   }
   >.right-wrap {
-    width: 51.39vh;
+    width: 53vh;
     height: 100vh;
     counter-reset: game-rule;
     display: flex;

+ 40 - 26
src/views/JigsawGame.vue

@@ -22,11 +22,13 @@
         @dragover.prevent
         @drop.prevent="onDrop"
       />
-      <!-- <button class="replay"
+      <button
         v-click-audio
-        >
+        class="replay"
+        @click="onClickReplay"
+      >
         重玩
-      </button> -->
+      </button>
     </div>
 
     <div class="jigsaw-list">
@@ -69,6 +71,7 @@
 <script>
 import useWindowSizeAdaptor from '@/useFunctions/useWindowSizeAdaptor.js'
 import { ElMessageBox } from 'element-plus'
+import { shuffle } from "lodash"
 
 export default {
   name: 'JigsawGame',
@@ -107,17 +110,12 @@ export default {
           hasPut: false,
         })
       }
+      this.jigsawItemsFlatten = shuffle(this.jigsawItemsFlatten)
     }
     setTimeout(() => {
       console.log('进入timeout!')
       if (!this.jigsawProgressSceneL2.isJigsawDone) {
-        console.log('要hide!')
-        const objectDocument = this.$refs.svgContainer.contentDocument
-        const gList = objectDocument.getElementsByTagName('g')
-        for (let index = 1; index < gList.length; index++) {
-          const element = gList[index]
-          element.setAttribute('visibility', 'hidden')
-        }
+        this.hideAllInSvg()
       }
     }, 300)
   },
@@ -126,7 +124,16 @@ export default {
   methods: {
     ...mapMutations([
       'recordJigsawDone',
+      'replayJigsaw',
     ]),
+    hideAllInSvg() {
+      const objectDocument = this.$refs.svgContainer.contentDocument
+      const gList = objectDocument.getElementsByTagName('g')
+      for (let index = 1; index < gList.length; index++) {
+        const element = gList[index]
+        element.setAttribute('visibility', 'hidden')
+      }
+    },
     onDragStart(e, jigsawImgName, idx) {
       // 不知道为啥,在svg内部元素上无法触发drop事件,求助gpt也没用。只好用一个透明方块放在需要能drop的svg内部元素上面。
 
@@ -246,6 +253,13 @@ export default {
     onDragOver(e) {
       e.preventDefault()
     },
+    onClickReplay() {
+      this.jigsawItemsFlatten.forEach(element => {
+        element.hasPut = false
+      })
+      this.hideAllInSvg()
+      this.replayJigsaw(Number(this.$route.query.sceneL2Idx))
+    }
   },
 }
 </script>
@@ -289,22 +303,22 @@ export default {
       // opacity: 0.2;
       z-index: 1;
     }
-    // >button.replay {
-    //   position: absolute;
-    //   bottom: calc(-15 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
-    //   left: 50%;
-    //   transform: translate(-50%, 100%);
-    //   width: calc(100 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
-    //   height: calc(40 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
-    //   border-radius: calc(5 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
-    //   border: 1px solid red;
-    //   letter-spacing: 0.5em;
-    //   padding-left: 0.5em;
-    //   font-size: calc(20 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
-    //   font-family: Source Han Sans CN-Bold, Source Han Sans CN;
-    //   font-weight: bold;
-    //   color: red;
-    // }
+    >button.replay {
+      position: absolute;
+      bottom: calc(-15 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
+      left: 50%;
+      transform: translate(-50%, 100%);
+      width: calc(100 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
+      height: calc(40 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
+      border-radius: calc(5 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
+      border: 1px solid red;
+      letter-spacing: 0.5em;
+      padding-left: 0.5em;
+      font-size: calc(20 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
+      font-family: Source Han Sans CN-Bold, Source Han Sans CN;
+      font-weight: bold;
+      color: red;
+    }
   }
   >.jigsaw-list {
     position: relative;

+ 6 - 6
src/views/Level3.vue

@@ -206,23 +206,23 @@ export default {
   >menu {
     position: absolute;
     top: 0;
-    left: 130px;
+    left: calc(130 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
     font-size: 0;
     >img.bg {
-      height: 173px;
+      height: calc(173 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
     }
     >.menu-item {
       position: absolute;
-      top: 76px;
+      top: calc(76 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
       left: 50%;
       transform: translateX(-50%);
-      height: 94px;
-      font-size: 38px;
+      height: calc(94 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
+      font-size: calc(38 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
       font-family: FZShaoEr-M11-Regular, FZShaoEr-M11;
       font-weight: 400;
       color: #2D241D;
       line-height: 1.3;
-      margin-bottom: 15px;
+      margin-bottom: calc(15 / v-bind('windowSizeWhenDesign') * v-bind('unit'));
       display: flex;
       justify-content: center;
       align-items: center;

+ 0 - 6
src/views/TravelRecord.vue

@@ -35,12 +35,6 @@ export default {
   methods: {
     ...mapMutations([
     ]),
-    onClickBook() {
-      ElMessage({
-        message: '敬请期待',
-        type: 'warning',
-      })
-    },
     onClickVideo() {
       if (this.$refs.video.paused || this.$refs.video.ended) {
         this.$refs.video.play()