xiewenjie 3 år sedan
förälder
incheckning
089652fe4a

+ 34 - 28
src/main/java/com/fdkk/fdkkmeta/grpcService/sceneGrpcServer.java

@@ -118,7 +118,7 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     		String app_id = request.getAppId();
             //保存user
             UserEntity userEntity=new UserEntity();
-            
+
             userEntity.setAppId(app_id);
             userEntity.setAvatarId(avatar_id);
             userEntity.setNickName(nick_name);
@@ -126,7 +126,7 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             userEntity.setSkinId(skin_id);
             userEntity.setFrameId(0L);
             userEntity.setBreakPointId(0L);
-            
+
           //初始化的时候可以写死
             AnglePO player_angle = new AnglePO();
             player_angle.setPitch(0);
@@ -160,10 +160,11 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     		String user_id = request.getUserId();
     		RotationAction rotation_action = request.getRotationAction();
     		double horizontal_move = rotation_action.getHorizontalMove();
-    		
+
     		//这三个变量从user表和rotateframe表里取
             UserEntity user = userService.findById(user_id);
-            BreakpointsEntity breakpointsEntity = breakpointsService.findById(user.getBreakPointId());
+			Long breakPointId = user.getBreakPointId();
+            BreakpointsEntity breakpointsEntity = breakpointsService.findById(breakPointId);
             RotateFrameEntity rotateFrameEntity = rotateFrameService.findById(user.getFrameId());
 
             PointPO playerPoint = breakpointsEntity.getPosition();
@@ -171,21 +172,22 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             AnglePO playerAnglePO = user.getPlayerAngle();
             AngleUe4 playerAngle = createAngle(playerAnglePO.getPitch(),playerAnglePO.getYaw(),playerAnglePO.getRoll());
             Space player = createSpace(playerPosition,playerAngle);
-            
-            PointPO cameraPoint = rotateFrameEntity.getCameraPosition();
-            Point cameraPosition = createPoint(String.valueOf(cameraPoint.getX()),String.valueOf(cameraPoint.getY()),String.valueOf(cameraPoint.getZ()));
-            AnglePO cameraAnglePO = rotateFrameEntity.getCameraAngle();
-            
+
     		double hAngle = horizontal_move * 90;
     		int offFrameIndex = (int)Math.ceil(hAngle);
     		int currentFrame = rotateFrameEntity.getFrameIndex();      //从数据库里读取
     		currentFrame +=offFrameIndex;
     		currentFrame = currentFrame % 359;
     		//currentFrame
-            
+			log.info("currentFrame{}",currentFrame);
+			String appId = user.getAppId();
+			rotateFrameEntity = rotateFrameService.findByAppIdAndBreakPointIdAndFrameIndex(appId,breakPointId,currentFrame);
+			PointPO cameraPoint = rotateFrameEntity.getCameraPosition();
+			Point cameraPosition = createPoint(String.valueOf(cameraPoint.getX()),String.valueOf(cameraPoint.getY()),String.valueOf(cameraPoint.getZ()));
+			AnglePO cameraAnglePO = rotateFrameEntity.getCameraAngle();
             AngleUe4 cameraAngle = createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
     		Space camera = createSpace(cameraPosition,cameraAngle);
-    		
+
     		//对准player
     		Point cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
 
@@ -238,9 +240,10 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
      		String user_id = request.getUserId();
 
             UserEntity user = userService.findById(user_id);
-            BreakpointsEntity breakpointsEntity = breakpointsService.findById(user.getBreakPointId());
+			Long breakPointId = user.getBreakPointId();
+			BreakpointsEntity breakpointsEntity = breakpointsService.findById(breakPointId);
             RotateFrameEntity rotateFrameEntity = rotateFrameService.findById(user.getFrameId());
-            
+
             Point start = null;    //从user表里取
      		//计算路径
 
@@ -275,9 +278,9 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             AnglePO playerAnglePO = user.getPlayerAngle();
             AngleUe4 playerAngle = createAngle(playerAnglePO.getPitch(),playerAnglePO.getYaw(),playerAnglePO.getRoll());
             Space player = createSpace(playerPosition,playerAngle);
-            
+
             AnglePO cameraAnglePO = rotateFrameEntity.getCameraAngle();
-            
+
             int angle = cameraAnglePO.getYaw();
             int offAngle = 0;
             offAngle = angle%45;
@@ -287,19 +290,21 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             else {
             	offAngle = -1*offAngle;
             }
-            
-            //循环
-            //for()
-            
+			List<RotateFrameEntity> rotateFrameEntityList = rotateFrameService.findByAppIdAndBreakPointIdBetweenFrameIndex(appId, breakPointId, angle, offAngle + angle);
+			//循环
+            //rotateFrameEntityList for()
+
             PointPO cameraPoint = rotateFrameEntity.getCameraPosition();
             Point cameraPosition = createPoint(String.valueOf(cameraPoint.getX()),String.valueOf(cameraPoint.getY()),String.valueOf(cameraPoint.getZ()));
             AngleUe4 cameraAngle = createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
             Space camera = createSpace(cameraPosition,cameraAngle);
-            
+
         	Point cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
     		State playerState = createPlayerState( player, camera, cameraCenter);
     		RenderInfo renderInfo = createRenderInfo();
     		Event event = createEvent();
+
+
     		UserState userState = createUserState( user_id, playerState, renderInfo, event);
 
     		MoveReply res = MoveReply.newBuilder()
@@ -348,9 +353,9 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             AnglePO playerAnglePO = user.getPlayerAngle();
             AngleUe4 playerAngle = createAngle(playerAnglePO.getPitch(),playerAnglePO.getYaw(),playerAnglePO.getRoll());
             Space player = createSpace(playerPosition,playerAngle);
-            
+
             AnglePO cameraAnglePO = rotateFrameEntity.getCameraAngle();
-            
+
             int angle = cameraAnglePO.getYaw();
             int offAngle = 0;
             offAngle = angle%45;
@@ -360,15 +365,15 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
             else {
             	offAngle = -1*offAngle;
             }
-            
+
             //循环
             //for()
-            
+
             PointPO cameraPoint = rotateFrameEntity.getCameraPosition();
             Point cameraPosition = createPoint(String.valueOf(cameraPoint.getX()),String.valueOf(cameraPoint.getY()),String.valueOf(cameraPoint.getZ()));
             AngleUe4 cameraAngle = createAngle(cameraAnglePO.getPitch(),cameraAnglePO.getYaw(),cameraAnglePO.getRoll());
             Space camera = createSpace(cameraPosition,cameraAngle);
-            
+
         	Point cameraCenter = createPoint(String.valueOf(playerPoint.getX()),String.valueOf(playerPoint.getY()),String.valueOf(playerPoint.getZ()));
     		State playerState = createPlayerState( player, camera, cameraCenter);
     		RenderInfo renderInfo = createRenderInfo();
@@ -454,17 +459,18 @@ public class sceneGrpcServer extends SceneGrpcServiceGrpc.SceneGrpcServiceImplBa
     		*/
             int actionType = request.getActionType();
             DirAction dirAction = request.getDirAction();
-            
+
      		String trace_id = request.getTraceId();
      		String user_id = request.getUserId();
      		String packet_id = request.getPacketId();
-     		
+
      		UserEntity user = userService.findById(user_id);
      		Long breakPointId = user.getBreakPointId();
      		//获得当前点所有邻居点
+			//TODO 获取棋盘
      		//找到与角度move_angle最近的邻居点
      		//移动player,并且更新相机角度
-            
+
     	}
     	catch(Exception e) {
     		e.printStackTrace();

+ 2 - 1
src/main/java/com/fdkk/fdkkmeta/service/RotateFrameService.java

@@ -14,7 +14,8 @@ public interface RotateFrameService extends IBaseService<RotateFrameEntity> {
     List<RotateFrameEntity> findByAppId(String AppId);
     JSONObject getInitFrameInfo(String app_id);
 
-    RotateFrameEntity findByAppIdAndBreakPointIdAndFrameIndex(String appid,String breakPointId,String sframeIndex,String eframeIndex);
+    List<RotateFrameEntity> findByAppIdAndBreakPointIdBetweenFrameIndex(String appid,Long breakPointId,Integer sframeIndex,Integer eframeIndex);
 
+    RotateFrameEntity findByAppIdAndBreakPointIdAndFrameIndex(String appid,Long breakPointId,Integer frameIndex);
 
 }

+ 10 - 1
src/main/java/com/fdkk/fdkkmeta/service/impl/RotateFrameImpl.java

@@ -32,11 +32,20 @@ public class RotateFrameImpl extends BaseServiceImpl<RotateFrameMapper, RotateFr
     }
 
     @Override
-    public RotateFrameEntity findByAppIdAndBreakPointIdAndFrameIndex(String appid, String breakPointId, String sframeIndex, String eframeIndex) {
+    public List<RotateFrameEntity> findByAppIdAndBreakPointIdBetweenFrameIndex(String appid, Long breakPointId, Integer sframeIndex, Integer eframeIndex) {
         LambdaQueryWrapper<RotateFrameEntity> wrapper = Wrappers.lambdaQuery();
         wrapper.eq(RotateFrameEntity::getAppId, appid);
         wrapper.eq(RotateFrameEntity::getBreakPointId, breakPointId);
         wrapper.between(RotateFrameEntity::getFrameIndex,sframeIndex,eframeIndex);
+        return list(wrapper);
+    }
+
+    @Override
+    public RotateFrameEntity findByAppIdAndBreakPointIdAndFrameIndex(String appid, Long breakPointId, Integer frameIndex) {
+        LambdaQueryWrapper<RotateFrameEntity> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(RotateFrameEntity::getAppId, appid);
+        wrapper.eq(RotateFrameEntity::getBreakPointId, breakPointId);
+        wrapper.eq(RotateFrameEntity::getFrameIndex,frameIndex);
         return getOne(wrapper);
     }
 }