示例#1
0
        public void OnPhysicsUpdate()
        {
            _currentDateTime = _state.CurrentSystemDateTime;
            if (_transitLeaveDateTime < _currentDateTime)
            {
                _transitLeaveDateTime = _currentDateTime;
            }


            _transitLeavePositionRalitive = OrbitProcessor.GetPosition_AU(_movingEntityCurrentOrbit, _transitLeaveDateTime);


            _progradeAngle = Math.Atan2(_transitLeavePositionRalitive.Y, _transitLeavePositionRalitive.X);
            //OrbitProcessor.PreciseOrbitalVector(
            _progradeAngle           -= Math.PI;
            _departIcon.ProgradeAngle = _progradeAngle;
            _departIcon.SetTransitPostion(_transitLeavePositionRalitive);


            if (_arriveIcon != null)
            {
                _arriveIcon.ProgradeAngle = _progradeAngle;
                _arriveIcon.SetTransitPostion(_progradeAngle, _arrivePntRadius);
            }
        }
示例#2
0
 public void SetArrivalPosition(Vector4 ralitiveWorldPosition)
 {
     _transitArrivePosition = ralitiveWorldPosition;
     _arriveIcon.SetTransitPostion(_transitArrivePosition);
 }