package org.newdawn.slick.tests; import org.newdawn.slick.AppGameContainer; import org.newdawn.slick.BasicGame; import org.newdawn.slick.GameContainer; import org.newdawn.slick.Graphics; import org.newdawn.slick.Image; import org.newdawn.slick.SlickException; import org.newdawn.slick.SpriteSheet; public class RotateInUseTest extends BasicGame { public static void main(String[] args) throws SlickException { new AppGameContainer(new RotateInUseTest(), 800, 600, false).start(); } public RotateInUseTest() { super("Rotate In Use"); } private Image sheet2, subImage; private SpriteSheet sheet1; private float rot1, rot2; @Override public void init(GameContainer container) throws SlickException { sheet1 = new SpriteSheet("testdata/dungeontiles.gif", 32, 32); //lets make this tile rotate around the top left sheet1.getSubImage(1, 2).setCenterOfRotation(0, 0); //and this one around top middle sheet1.getSubImage(3, 2).setCenterOfRotation(16, 0); sheet2 = new Image("testdata/logo.tga"); subImage = sheet2.getSubImage(40, 40, 50, 50); } @Override public void render(GameContainer container, Graphics g) throws SlickException { sheet1.startUse(); sheet1.renderInUse(50, 50, 0, 0); sheet1.renderInUse(100, 50, 1, 2); sheet1.renderInUse(150, 50, 64, 64, 1, 2); sheet1.renderInUse(250, 50, 64, 64, rot1, 1, 2); //rotates around top left sheet1.renderInUse(350, 50, 64, 64, rot2, 3, 2); //rotates around top middle sheet1.renderInUse(450, 50, rot1, 4, 4); //default; rotates around center sheet1.renderInUse(250, 50, 64, 64, rot1, 1, 2); sheet1.endUse(); sheet2.startUse(); subImage.drawEmbedded(100, 200, subImage.getWidth(), subImage.getHeight(), rot1); subImage.drawEmbedded(300, 200, subImage.getWidth()*4f, subImage.getHeight()*2f, rot2); sheet2.endUse(); } @Override public void update(GameContainer container, int delta) throws SlickException { rot1 += delta * 0.03f; rot2 += delta * 0.08f; } }