コード例 #1
0
        public override void SetStateAndStep(ref ClientState state, InputFrame input, float deltaTime)
        {
            foreach (PlayerState player in state.Players().Values)
            {
                player.Position.Value = Bodies[player.GUID.Value].position;
                player.Rotation.Value = Bodies[player.GUID.Value].rotation;
            }

            common.logic.PlayerMovement.Execute(ref m_localPlayerBody, PlayerControllers[state.PlayerGUID].GetStats(), input, deltaTime);
        }
コード例 #2
0
        public override bool NeedsCorrection(ClientState localState, ClientState remoteState)
        {
            bool err = false;

            foreach (PlayerState player in remoteState.Players().Values)
            {
                err = (player.Position.Value - localState.Players()[player.GUID.Value].Position.Value).sqrMagnitude > 0.01f;
                if (err)
                {
                    return(true);
                }
            }
            return(err);
        }
コード例 #3
0
 public override void UpdateFromState(ClientState state)
 {
     foreach (PlayerState player in state.Players().Values)
     {
         if (player.GUID.Value != m_playerGUID)
         {
             m_goalStates[player.GUID.Value] = player;
         }
         else
         {
             Bodies[player.GUID.Value].position = player.Position.Value;
             Bodies[player.GUID.Value].rotation = player.Rotation.Value;
         }
     }
 }