TileImages: draw animated frames

(still need to implement redrawing of animated frames)
This commit is contained in:
Jason Long 2014-06-19 20:47:44 -04:00
parent 48cd74c977
commit 9c5c41e0f4
3 changed files with 25 additions and 4 deletions

View file

@ -41,6 +41,11 @@ public class TileImages
static class AnimatedTile extends TileImage
{
SimpleTileImage [] frames;
public SimpleTileImage getFrameByTime(int acycle)
{
return frames[acycle % frames.length];
}
}
private TileImages(String name, int size)
@ -180,6 +185,11 @@ public class TileImages
}
public int getTileImageNumber(int tileNumber)
{
return getTileImageNumber(tileNumber, 0);
}
public int getTileImageNumber(int tileNumber, int acycle)
{
assert (tileNumber & LOMASK) == tileNumber;
assert tileNumber >= 0 && tileNumber < tileImageMap.length;
@ -190,7 +200,7 @@ public class TileImages
}
else if (ti instanceof AnimatedTile) {
AnimatedTile anim = (AnimatedTile) ti;
return anim.frames[0].imageNumber;
return anim.getFrameByTime(acycle).imageNumber;
}
else {
assert false;
@ -198,14 +208,19 @@ public class TileImages
}
}
public Image getTileImage(int tileNumber)
public Image getTileImage(int tile, int acycle)
{
assert images != null;
int imageNumber = getTileImageNumber(tileNumber);
int imageNumber = getTileImageNumber(tile, acycle);
return images[imageNumber];
}
public Image getTileImage(int tile)
{
return getTileImage(tile, 0);
}
private Image [] loadTileImages(String resourceName, int srcSize)
{
URL iconUrl = TileImages.class.getResource(resourceName);