public Animation(GameObject parent, int width, int height, bool useTimer)
 {
     _texture           = parent._texture;
     _textureRect       = new Rectangle(0, 0, _texture.Width, _texture.Height);
     _displayRect       = new Rectangle(0, 0, width, height);
     _cols              = _texture.Width / width;
     _rows              = _texture.Height / height;
     _totalFrames       = _cols * _rows;
     _parent            = parent;
     _currentStage      = new AnimationStage(0, _totalFrames - 1, true, 0, false);
     _parent._srcRect   = _displayRect;
     _currentStageIndex = 0;
     _useTimer          = useTimer;
     if (_useTimer)
     {
         _timer      = new Timer(DEFAULT_FRAME_DELAY, 0, Animate, this);
         _timerIndex = Timers.Add(_timer);
     }
 }
 public void Remove()
 {
     Timers.Remove(_timerIndex);
     _parent = null;
 }