Back to project page SnowLand.
The source code is released under:
GNU General Public License
If you think the Android project SnowLand listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.walrus.game; //from w w w . j av a 2s . com import java.util.ArrayList; import com.walrus.framework.Image; public class Animation { private ArrayList frames; private int currentFrame; private long animTime; private long totalDuration; public Animation() { frames = new ArrayList(); totalDuration = 0; synchronized (this) { animTime = 0; currentFrame = 0; } } public synchronized void addFrame(Image image, long duration) { totalDuration += duration; frames.add(new AnimFrame(image, totalDuration)); } public synchronized void update(long elapsedTime) { if (frames.size() > 1) { animTime += elapsedTime; if (animTime >= totalDuration) { animTime = animTime % totalDuration; currentFrame = 0; } while (animTime > getFrame(currentFrame).endTime) { currentFrame++; } } } public synchronized Image getImage() { if (frames.size() == 0) { return null; } else { return getFrame(currentFrame).image; } } private AnimFrame getFrame(int i) { return (AnimFrame) frames.get(i); } private class AnimFrame { Image image; long endTime; public AnimFrame(Image image, long endTime) { this.image = image; this.endTime = endTime; } } }