1package aurelienribon.tweenengine.applets;
2
3import java.awt.Graphics2D;
4import java.awt.image.BufferedImage;
5import java.io.IOException;
6import javax.imageio.ImageIO;
7
8/**
9 * @author Aurelien Ribon | http://www.aurelienribon.com
10 */
11public class Sprite {
12	private BufferedImage image;
13	private float x = 0;
14	private float y = 0;
15	private float scaleX = 1;
16	private float scaleY = 1;
17	private boolean isCentered = true;
18	private boolean isVisible = true;
19
20	public Sprite(String gfxName) {
21		try {
22			image = ImageIO.read(Sprite.class.getResource("/aurelienribon/tweenengine/applets/gfx/" + gfxName));
23		} catch (IOException ex) {
24		}
25	}
26
27	public void draw(Graphics2D gg) {
28		if (!isVisible) return;
29		gg = (Graphics2D) gg.create();
30		gg.translate(x, y);
31		gg.scale(scaleX, scaleY);
32		gg.drawImage(image, null, isCentered ? -image.getWidth()/2 : 0, isCentered ? -image.getHeight()/2 : 0);
33		gg.dispose();
34	}
35
36	public void setPosition(float x, float y) {
37		this.x = x;
38		this.y = y;
39	}
40
41	public void setScale(float scaleX, float scaleY) {
42		this.scaleX = scaleX;
43		this.scaleY = scaleY;
44	}
45
46	public Sprite setCentered(boolean isCentered) {
47		this.isCentered = isCentered;
48		return this;
49	}
50
51	public void setVisible(boolean isVisible) {
52		this.isVisible = isVisible;
53	}
54
55	public float getX() {
56		return x;
57	}
58
59	public float getY() {
60		return y;
61	}
62
63	public float getScaleX() {
64		return scaleX;
65	}
66
67	public float getScaleY() {
68		return scaleY;
69	}
70
71	public boolean isVisible() {
72		return isVisible;
73	}
74}
75