56 lines
1.3 KiB
Java
56 lines
1.3 KiB
Java
package fr.enssat.BoulderDash.models.displayableElement;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
import java.util.ArrayList;
|
|
|
|
|
|
/**
|
|
* MagicWallModel
|
|
*
|
|
* Represents the magic wall.
|
|
*
|
|
* @author Colin Leverger <me@colinleverger.fr>
|
|
* @since 2015-06-19
|
|
*/
|
|
public class MagicWallModel extends DisplayableElementModel {
|
|
/**
|
|
* Stores the frames
|
|
* Used for the sprites
|
|
*/
|
|
private ArrayList<BufferedImage> framesMagicWall;
|
|
|
|
private long previousTime;
|
|
private int currentFrame = 0;
|
|
|
|
/**
|
|
* Function to animate the sprite
|
|
*/
|
|
public void update(long time) {
|
|
long speed = 100;
|
|
if (time - previousTime >= speed) {
|
|
// Update animation
|
|
previousTime = time;
|
|
|
|
try {
|
|
currentFrame += 1;
|
|
|
|
this.setSprite(framesMagicWall.get(this.currentFrame));
|
|
} catch (IndexOutOfBoundsException e) {
|
|
currentFrame = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Init the subimages
|
|
*/
|
|
/* package-private */ void initSprites() {
|
|
this.framesMagicWall = new ArrayList<BufferedImage>();
|
|
/* INIT SPRITE FOR DIAMOND */
|
|
framesMagicWall.add(grabSprite(loadSprite(spriteName), 0, 0, 16, 16));
|
|
framesMagicWall.add(grabSprite(loadSprite(spriteName), 24, 0, 16, 16));
|
|
framesMagicWall.add(grabSprite(loadSprite(spriteName), 48, 0, 16, 16));
|
|
framesMagicWall.add(grabSprite(loadSprite(spriteName), 72, 0, 16, 16));
|
|
}
|
|
}
|