package org.newdawn.slick.tests; import java.util.ArrayList; import org.newdawn.slick.AppGameContainer; import org.newdawn.slick.BasicGame; import org.newdawn.slick.Color; import org.newdawn.slick.GameContainer; import org.newdawn.slick.Graphics; import org.newdawn.slick.Input; import org.newdawn.slick.SlickException; import org.newdawn.slick.geom.Circle; import org.newdawn.slick.geom.Ellipse; import org.newdawn.slick.geom.Polygon; import org.newdawn.slick.geom.Rectangle; import org.newdawn.slick.geom.RoundedRectangle; import org.newdawn.slick.geom.Shape; import org.newdawn.slick.opengl.renderer.Renderer; /** * A geomertry test * * @author kevin */ public class ShapeTest extends BasicGame { /** rectangle to display */ private Rectangle rect; /** rounded rectangle to display */ private RoundedRectangle roundRect; /** ellipse to display */ private Ellipse ellipse; /** circle to display */ private Circle circle; /** polygon to display */ private Polygon polygon; /** list for drawing the shapes*/ private ArrayList shapes; /** track key presses */ private boolean keys[]; /** since no modifiers, use this for shifted characters */ private char lastChar[]; /** The polgon randomly generated */ private Polygon randomShape = new Polygon(); /** * Create a new test of graphics context rendering */ public ShapeTest() { super("Geom Test"); } public void createPoly(float x, float y) { int size = 20; int change = 10; randomShape = new Polygon(); // generate random polygon randomShape.addPoint(0 + (int)(Math.random() * change), 0 + (int)(Math.random() * change)); randomShape.addPoint(size - (int)(Math.random() * change), 0 + (int)(Math.random() * change)); randomShape.addPoint(size - (int)(Math.random() * change), size - (int)(Math.random() * change)); randomShape.addPoint(0 + (int)(Math.random() * change), size - (int)(Math.random() * change)); // center polygon randomShape.setCenterX(x); randomShape.setCenterY(y); } /** * @see org.newdawn.slick.BasicGame#init(org.newdawn.slick.GameContainer) */ public void init(GameContainer container) throws SlickException { shapes = new ArrayList(); rect = new Rectangle(10, 10, 100, 80); shapes.add(rect); roundRect = new RoundedRectangle(150, 10, 60, 80, 20); shapes.add(roundRect); ellipse = new Ellipse(350, 40, 50, 30); shapes.add(ellipse); circle = new Circle(470, 60, 50); shapes.add(circle); polygon = new Polygon(new float[]{550, 10, 600, 40, 620, 100, 570, 130}); shapes.add(polygon); keys = new boolean[256]; lastChar = new char[256]; createPoly(200,200); } /** * @see org.newdawn.slick.BasicGame#render(org.newdawn.slick.GameContainer, org.newdawn.slick.Graphics) */ public void render(GameContainer container, Graphics g) { g.setColor(Color.green); for(int i=0;i