diff --git a/src/components/InteractiveObjects/ClassicPuzzle.js b/src/components/InteractiveObjects/ClassicPuzzle.js index f352ef0..e4fa9f9 100644 --- a/src/components/InteractiveObjects/ClassicPuzzle.js +++ b/src/components/InteractiveObjects/ClassicPuzzle.js @@ -1,6 +1,7 @@ import { Color, Group, DoubleSide, RepeatWrapping, MeshStandardMaterial, VideoTexture } from "three" import { EventManager } from '@/lib/EventManager'; import { centerOrigin } from "@/lib/MeshUtils"; +import Utils from "#/app/Utils"; class ClassicPuzzle extends EventManager { emits = ['finish', 'interaction'] @@ -32,10 +33,15 @@ class ClassicPuzzle extends EventManager { let dragZone = gltf.scene.getObjectByName('DragZone'); dragZone.material.side = DoubleSide; + let pCount = 0; let eventsFn= { - start(){ + async start(){ that.dispatchEvent({type:'interaction'}); - if (vi?.paused) vi.play(); + if (vi?.paused) { + await vi.play(); + await Utils.wait(5000); + done != pCount && vi.pause(); + } }, drag(){}, end(e){ @@ -59,7 +65,6 @@ class ClassicPuzzle extends EventManager { } } } - let pCount = 0; dragZone.visible = false; let defaultMaterial = new MeshStandardMaterial({ diff --git a/src/pages/manage/game-objects/[[id]].vue b/src/pages/manage/game-objects/[[id]].vue index 8171b56..1cf9c68 100644 --- a/src/pages/manage/game-objects/[[id]].vue +++ b/src/pages/manage/game-objects/[[id]].vue @@ -95,6 +95,10 @@ export default { if (this.file) { fd.append('file', this.file) } + if (this.object.thumb){ + fd.append('thumb', this.object.thumb) + delete this.object.thumb; + } fd.append('object', JSON.stringify(this.object)); let result = await this.$api.gameObject.save(fd); Object.assign(this.object, result.data.object); diff --git a/src/styles/style.scss b/src/styles/style.scss index ae42cc2..3b5f565 100644 --- a/src/styles/style.scss +++ b/src/styles/style.scss @@ -115,7 +115,7 @@ video{ overflow: hidden; width: 100%; max-width: 100vw; - height: calc(100vh - 277px); + height: calc(100vh - 188px); &.pan { cursor: grab; }