zhouenguang 3 rokov pred
rodič
commit
0350a64fcc

+ 5 - 0
modules/CameraController.js

@@ -145,6 +145,11 @@ export default class CameraController {
 
     async rotateCamera(alphaOffset, dirc, func) {
 
+        if(dirc == 0) {
+            func && func()
+            return
+        }
+
         let video0
 
         if(this.lastDirc * dirc <= 0) {

+ 7 - 8
modules/CharactorManager.js

@@ -94,15 +94,14 @@ export default class CharactorManager {
             } 
             else {
                 // 相机方向矫正
-                let cameraAlphaAmend = parseInt(camera.alpha / (Math.PI / 4)) * (Math.PI / 4)
-                let pointData = this.getClosestPointData(this.charactor.mesh.position)
-                let sendData = {
-                    video: [pointData.id],
-                    reverse: camera.alpha - cameraAlphaAmend < 0
-                }
+                let cameraAlphaAmend = Math.round(camera.alpha / (Math.PI / 4)) * (Math.PI / 4)
+                // let pointData = this.getClosestPointData(this.charactor.mesh.position)
+                // let sendData = {
+                //     video: [pointData.id],
+                //     reverse: camera.alpha - cameraAlphaAmend < 0
+                // }
                 // window.connection.socket.emit("getPush", sendData)
 
-                // todo
                 this.app.cameraController.rotateCamera(camera.alpha - cameraAlphaAmend, -Math.sign(camera.alpha - cameraAlphaAmend), () => {
                     this.charactorWalkTo(pickinfo.pickedPoint)
                 })
@@ -161,7 +160,7 @@ export default class CharactorManager {
 
     getVideoDirecNum() {
         // 视频逆时针旋转
-        let num = Math.floor(this.app.cameraController.camera.alpha % (Math.PI * 2) / (Math.PI / 4))
+        let num = Math.round(this.app.cameraController.camera.alpha % (Math.PI * 2) / (Math.PI / 4))
 
         if(num <= 0) {
             return -num

+ 5 - 1
modules/index.js

@@ -164,6 +164,7 @@ export default class App {
 
             switch (pointerInfo.type) {
                 case BABYLON.PointerEventTypes.POINTERDOWN:
+                    // this.mouseMoving = false
                     this.cameraController.startMouseRotate(pointerInfo)
                     break;
 
@@ -172,8 +173,10 @@ export default class App {
                     break;
 
                 case BABYLON.PointerEventTypes.POINTERMOVE:
-                    if(this.cameraController.lastFramePoint) 
+                    if(this.cameraController.lastFramePoint) {
+                        // this.mouseMoving = true
                         this.cameraController.mouseRotating(pointerInfo)
+                    }
                     break;
 
                 case BABYLON.PointerEventTypes.POINTERWHEEL:
@@ -183,6 +186,7 @@ export default class App {
                     break;
 
                 case BABYLON.PointerEventTypes.POINTERTAP:
+                    // !this.mouseMoving && 
                     if(pointerInfo.pickInfo.hit && this.house.indexOf(pointerInfo.pickInfo.pickedMesh)) {
                         this.charactorManager.clickHouse()
                     }

+ 2 - 2
modules/utils/common.js

@@ -72,7 +72,7 @@ export default {
                 // video.controls="true" 
                 video.muted = "muted"
                 video.autoplay = "autoplay" 
-                video.preload = "auto"
+                // video.preload = "auto"
                 video.src = path
 
                 // document.getElementById("videoTextureBox").appendChild(video)
@@ -100,7 +100,7 @@ export default {
         video.id = videoName
         video.crossOrigin = "anonymous" 
         video.autoplay = "autoplay" 
-        video.preload = "auto"
+        // video.preload = "auto"
         video.muted = "muted"
         video.setAttribute("playsinline", "true") 
         video.setAttribute("x5-playsinline", "true")