Timing a moving sprite
===

I need to move my sprite on a path (`List<Point>`track) pixel per pixel in my OpenGL game, so I need to implement a way to control timing. I read about different ways: using `OnRenderUpdate` (but I can't make nothing faster than 1/fps), using a different thread to control time or using a `StopWatch` (instead of a `Timer`). I'm trying with the last one:

    private void Sprite_Move(Sprite sprite, List<Point> path) {
      track.Clear();
      for (int i = 1; i < path.Count; i++) {
        //memorize all track pixel, so I can update pixel per pixel my sprite position
        Bresenham2(path[i-1], path[i]);
      }
      //moving flag
      sprite.moving = true;
      //start my StopWatch
      timer.Start();
      Loop(timer, sprite);

    }

    private void Loop(Stopwatch timer, Sprite sprite) {
      int i = 1;
      while (timer.IsRunning) {
        //moving each 0.03s?
        if ((sprite.moving) & (timer.Elapsed.Milliseconds >= 30)) {
          if (i < track.Count) {
            //change sprite position to the i-th track pixel
            Sprite_Position(skinny, track[i]);
            i++;
            timer.Reset();
            Console.WriteLine("Tick");
          }
          //if I'm on the end of the track I can exit
          else timer.Stop();
        }
      }
    }

Not so sure it's a stopwatch problem but I have just one pixel move and one "Tick" on my console.