18f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggipackage aurelienribon.tweenengine.applets;
28f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
38f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggiimport java.awt.Graphics2D;
48f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggiimport java.awt.image.BufferedImage;
58f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggiimport java.io.IOException;
68f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggiimport javax.imageio.ImageIO;
78f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
88f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi/**
98f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi * @author Aurelien Ribon | http://www.aurelienribon.com
108f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi */
118f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggipublic class Sprite {
128f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	private BufferedImage image;
138f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	private float x = 0;
148f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	private float y = 0;
158f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	private float scaleX = 1;
168f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	private float scaleY = 1;
178f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	private boolean isCentered = true;
188f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	private boolean isVisible = true;
198f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
208f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public Sprite(String gfxName) {
218f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		try {
228f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi			image = ImageIO.read(Sprite.class.getResource("/aurelienribon/tweenengine/applets/gfx/" + gfxName));
238f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		} catch (IOException ex) {
248f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		}
258f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
268f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
278f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public void draw(Graphics2D gg) {
288f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		if (!isVisible) return;
298f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		gg = (Graphics2D) gg.create();
308f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		gg.translate(x, y);
318f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		gg.scale(scaleX, scaleY);
328f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		gg.drawImage(image, null, isCentered ? -image.getWidth()/2 : 0, isCentered ? -image.getHeight()/2 : 0);
338f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		gg.dispose();
348f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
358f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
368f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public void setPosition(float x, float y) {
378f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		this.x = x;
388f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		this.y = y;
398f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
408f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
418f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public void setScale(float scaleX, float scaleY) {
428f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		this.scaleX = scaleX;
438f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		this.scaleY = scaleY;
448f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
458f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
468f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public Sprite setCentered(boolean isCentered) {
478f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		this.isCentered = isCentered;
488f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		return this;
498f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
508f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
518f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public void setVisible(boolean isVisible) {
528f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		this.isVisible = isVisible;
538f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
548f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
558f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public float getX() {
568f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		return x;
578f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
588f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
598f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public float getY() {
608f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		return y;
618f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
628f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
638f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public float getScaleX() {
648f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		return scaleX;
658f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
668f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
678f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public float getScaleY() {
688f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		return scaleY;
698f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
708f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi
718f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	public boolean isVisible() {
728f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi		return isVisible;
738f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi	}
748f2ef8f2d70edcfa159195e2efd23f95ff1b5789Jorim Jaggi}
75