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