package com.towel.graphics; import java.awt.*; import java.awt.image.BufferedImage; public class LoopImage { private BufferedImage imgs[]; private int currentIndex; public long tick; private long lastTick; public LoopImage(long tick, BufferedImage... imgs) { this.imgs = imgs.clone(); this.tick = tick; currentIndex = 0; } public void draw(Graphics2D g) { updateTick(); Graphics2D g2d = (Graphics2D) g.create(); BufferedImage current = imgs[currentIndex]; g2d.drawImage(current, 0, 0, current.getWidth(), current.getHeight(), null); g2d.dispose(); } private void updateTick() { long currentTick = System.currentTimeMillis(); if (currentTick - lastTick > tick) currentIndex++; lastTick = currentTick; if (currentIndex == imgs.length) currentIndex = 0; } public BufferedImage getCurrent() { updateTick(); return imgs[currentIndex]; } public Dimension getSize() { return new Dimension(imgs[currentIndex].getWidth(), imgs[currentIndex].getHeight()); } }