public void Notify(GameTime gameTime)
        {
            if (_ballYPosition >= 0)
                return;

            Calculate(gameTime.SecondsElapsedSince(_startTime));
        }
        public void Notify(GameTime gameTime)
        {
            var deltaT = gameTime.SecondsElapsedSince(_startTime);

            if (_cannonballPosition.Y >= 0)
                return;

            _cannonballPosition.X = _initialCannonballPosition.X + _initialHorizontalVelocity * deltaT;
            _cannonballPosition.Y = _initialCannonballPosition.Y + _initialVerticalVelocity * deltaT + 0.5 * G * Math.Pow(deltaT, 2);
        }
        public void Notify(GameTime gameTime)
        {
            var deltaT = gameTime.SecondsElapsedSince(_startTime);

            var velocity = CalculateVelocity(deltaT);

            if (_discXPosition > 295 || velocity <= 0)
                return;

            Calculate(deltaT);
        }
        public void Notify(GameTime gameTime)
        {
            if (_ballYPosition > -0.0001 && _ballYPosition < 0.0001)
            {
                _ballYPosition = 0;
                return;
            }

            //todo : p81 : modify SpringODE to include gravity
            _spring.UpdatePositionAndVelocity(gameTime.SecondsElapsedSince(_startTime));
            _ballYPosition = _spring.GetX();
        }
 public void Notify(GameTime gameTime)
 {
     GameCanvas.Source = _experiment.Draw();
 }