예제 #1
0
    private void OnPointUp(BaseEventData arg0)
    {
        //GameEntity entity = _context.CreateEntity();
        //entity.AddPlayerId(Config.SelfId);
        //entity.AddSteerPosition(Vector2.zero);
        // 发送到帧同步服务器
        SteerPositionReq req = new SteerPositionReq();

        req.X = 0;
        req.Y = 0;
        LockStepClientMgr.GetInstance().SendMsg(MsgID.SteerPositionReq, req);
    }
예제 #2
0
    private void OnClick(BaseEventData arg0)
    {
        PointerEventData eventData = (PointerEventData)arg0;
        //GameEntity entity = _context.CreateEntity();
        //entity.AddPlayerId(Config.SelfId);
        //entity.AddSteerPosition(eventData.position);
        // 发送到帧同步服务器
        SteerPositionReq req = new SteerPositionReq();

        req.X = eventData.position.x;
        req.Y = eventData.position.y;
        LockStepClientMgr.GetInstance().SendMsg(MsgID.SteerPositionReq, req);
    }
 private void FixedUpdate()
 {
     //  2个客户端都登录后,才开始帧同步
     if (_loginInPlayerCount < 2)
     {
         return;
     }
     _nextKeyFrame = _currKeyFrame + Config.SYN_RATE_SERVER;
     if (_currFrame % Config.SYN_RATE_SERVER == 0)
     {
         // 当前关键帧结束
         LockStepEnd lockStepEnd = new LockStepEnd();
         lockStepEnd.KeyFrame = _nextKeyFrame;
         lockStepEnd.MsgTotal = _msgIndex;
         ServerUDPMgr.GetInstance().SendMsgToAll(MsgID.LockStepEnd, lockStepEnd);
         _currKeyFrame = _currFrame;
         _msgIndex     = 0;
     }
     if (_msgQueue.Count != 0)
     {
         foreach (LockStepServerMsgItem serverMsgItem in _msgQueue)
         {
             if (serverMsgItem.msgId == MsgID.SteerPositionReq)
             {
                 SteerPositionReq steerPositionReq = (SteerPositionReq)serverMsgItem.msg;
                 SteerPositionRsp steerPositionRsp = new SteerPositionRsp();
                 steerPositionRsp.PlayerId = serverMsgItem.sendPlayerId;
                 steerPositionRsp.X        = steerPositionReq.X;
                 steerPositionRsp.Y        = steerPositionReq.Y;
                 // 客户端将要执行该命令的帧
                 steerPositionRsp.KeyFrame = _nextKeyFrame;
                 steerPositionRsp.MsgIndex = _msgIndex;
                 ServerUDPMgr.GetInstance().SendMsgToAll(MsgID.SteerPositionRsp, steerPositionRsp);
                 _msgIndex++;
             }
         }
         _msgQueue.Clear();
     }
     _currFrame++;
 }