public void run() { // Create and add sprites to the // sprite manager spriteManager = new SpriteManager(new BackgroundImage(this, backGroundImage)); // Create 15 sprites from 6 gif // files. for (int cnt = 0; cnt < 15; cnt++) { Point position = spriteManager.getEmptyPosition( new Dimension(gifImages[0].getWidth(this), gifImages[0].getHeight(this))); spriteManager.addSprite(makeSprite(position, cnt % 6)); } // end for loop // Loop, sleep, and update sprite // positions once each 83 // milliseconds long time = System.currentTimeMillis(); while (true) { // infinite loop spriteManager.update(); repaint(); try { time += animationDelay; Thread.sleep(Math.max(0, time - System.currentTimeMillis())); } catch (InterruptedException e) { System.out.println(e); } // end catch } // end while loop } // end run method