gemercheung 3 lat temu
rodzic
commit
295bc318cb

+ 4 - 4
src/move/move.service.ts

@@ -173,7 +173,7 @@ export class MoveService implements OnModuleInit {
 
       const appId = user.appId;
       const path = pathArray || [100, 101, 102]; //需要计算路径
-      const angle = (user.camera.angle.yaw + 1) % 45; //纠正需要
+      const angle = user.camera.angle.yaw % 45; //纠正需要
       const replys = [];
       const traceIds = [];
       traceIds.push(traceId);
@@ -223,7 +223,7 @@ export class MoveService implements OnModuleInit {
       this.reply.traceIds = traceIds;
       this.reply['newUserStates'][0].userId = userId;
       this.reply['actionResponses'][0].traceId = traceId;
-      const index = Math.floor((user.camera.angle.yaw + 1) / 45); //过渡需要
+      const index = Math.floor(user.camera.angle.yaw / 45); //过渡需要
       for (let i = 0; i < path.length - 1; ++i) {
         let pathReplys = [];
         const start_break_point_id = path[i];
@@ -590,7 +590,7 @@ export class MoveService implements OnModuleInit {
           traceIds.push(traceId);
           // debugger;
           const checkReplys = [];
-          angle = (user.camera.angle.yaw + 1) % 45; //纠正需要
+          angle = user.camera.angle.yaw % 45; //纠正需要
           for (let i = 0; i < angle; ++i) {
             const reply = await this.rotateService.rotateForAngle(userId, 1);
             reply.traceIds = [];
@@ -614,7 +614,7 @@ export class MoveService implements OnModuleInit {
             ':end_break_point_id:' +
             chooseBreakPointId +
             ':angle:' +
-            ((user.camera.angle.yaw + 1) % 45);
+            (user.camera.angle.yaw % 45);
           const moveFramesRes = await this.cacheService.get(key);
           if (moveFramesRes == null) {
             return replys;

+ 8 - 15
src/rotate/rotate.service.ts

@@ -209,6 +209,7 @@ export class RotateService {
         return null;
       }
       reply = await this.rotateForAngle(userId, Math.floor(hAngle));
+      // console.log('rotate-cameraAngle:, yaw: %s, ', user.camera.angle.yaw);
       return reply;
       // return resolve(reply);
     } catch (error) {
@@ -266,21 +267,15 @@ export class RotateService {
         //if (redisData && redisData.length > 0) {
         const value = JSON.parse(redisData); //redisData ? JSON.parse(redisData) : null;
         // console.log('rotate-service', value);
-        user.camera['position'] = value.cameraPosition; //value ? value.cameraPosition : '';
-        user.camera['angle'] = value.cameraAngle; //value ? value.cameraAngle : '';
-
-        reply['newUserStates'][0]['playerState'].player.position =
-          user.player.position;
-        reply['newUserStates'][0]['playerState'].player.angle =
-          user.player.angle;
+        user.camera['position'] = JSON.parse(JSON.stringify(value.cameraPosition)); //value ? value.cameraPosition : '';
+        user.camera['angle'] = JSON.parse(JSON.stringify(value.cameraAngle)); //value ? value.cameraAngle : '';
 
+        reply['newUserStates'][0]['playerState'].player.position = JSON.parse(JSON.stringify(user.player.position));
+        reply['newUserStates'][0]['playerState'].player.angle = JSON.parse(JSON.stringify(user.player.angle));
         //this.reply['newUserStates'][0]['playerState'] .player
-        reply['newUserStates'][0]['playerState'].camera.position =
-          value.cameraPosition;
-        reply['newUserStates'][0]['playerState'].camera.angle =
-          value.cameraAngle;
-        reply['newUserStates'][0]['playerState'].cameraCenter =
-          user.player.position;
+        reply['newUserStates'][0]['playerState'].camera.position = JSON.parse(JSON.stringify(value.cameraPosition));
+        reply['newUserStates'][0]['playerState'].camera.angle = JSON.parse(JSON.stringify(value.cameraAngle));
+        reply['newUserStates'][0]['playerState'].cameraCenter = JSON.parse(JSON.stringify(user.player.position));
         // debugger
         reply.mediaSrc =
           '/' +
@@ -298,8 +293,6 @@ export class RotateService {
         this.replies[userId].actionResponses = [];
 
         user.rotateInfo.horizontal_move = 0;
-        // console.timeEnd('旋转后镜头角度:' + user.camera.angle.yaw);
-        // console.log('旋转后镜头角度:, yaw: %s, ', user.camera.angle.yaw);
         return resolve(reply);
         //}
         // else {

+ 4 - 1
src/scene/scene.service.ts

@@ -285,7 +285,8 @@ export class SceneService implements OnModuleInit, OnModuleDestroy {
           const mediaSrc: string = redisMeta.mediaSrc || '';
           if (mediaSrc.length > 0) {
             const src = mediaSrc.split('?')[0];
-
+            // console.log('进入roQueue1', redisMeta.newUserStates[0].playerState.camera.angle.yaw);
+            // console.log('进入roQueue2', src);
             if (src.length > 0) {
               // console.log('不同源');
               this.holdSteam();
@@ -305,6 +306,8 @@ export class SceneService implements OnModuleInit, OnModuleDestroy {
               };
               // console.log('rotate', stream, Date.now());
               clearTimeout(this._rotateTimeout);
+
+              // console.log('进入roQueue3', stream.clipPath);
               this.roQueue.next(stream);
             } else {
               // this.onRotating.next(false);