public void run()
  {
    lastLoopTime = System.currentTimeMillis();
    while(isGameRunning)
    {
      this.updateTime();  
      //Get the Graphics surface to draw to, and clear it.
      Graphics2D graphics = (Graphics2D)strategy.getDrawGraphics();
      this.clear(graphics);     
      input.poll();
      //Update the game logic
      this.update();
      //Draw the graphics to the backbuffer
      this.draw(graphics);   
      //We've finished drawing, so show the backbuffer and dispose of the graphics surface.
      this.flush(graphics);    
      //Slow down the loop. This should make the game run at approximatly 100fps.
      //Look into a better method of doing this, as this is a variable time step that can easily fluctuate.
      try{ Thread.sleep(5); } catch(Exception e) {}
   }
  }