package examples.etyllica.colision; import java.awt.Color; import br.com.etyllica.awt.SVGColor; import br.com.etyllica.core.collision.CollisionDetector; import br.com.etyllica.core.context.Application; import br.com.etyllica.core.context.UpdateIntervalListener; import br.com.etyllica.core.event.MouseEvent; import br.com.etyllica.core.event.PointerEvent; import br.com.etyllica.core.graphics.Graphics; import br.com.etyllica.layer.GeometricLayer; import br.com.etyllica.layer.Layer; public class ColisionElements extends Application implements UpdateIntervalListener { private Color color = Color.BLUE; private Layer rectangle1; private Layer rectangle2; private GeometricLayer greenRectangle; private GeometricLayer orangeRectangle; private boolean colideGreenOrange = false; private int mx = 0; private int my = 0; public ColisionElements(int w, int h) { super(w, h); } @Override public void load() { rectangle1 = new Layer(80, 100, 200, 50); rectangle1.setAngle(20); rectangle2 = new Layer(200, 200, 200, 50); greenRectangle = new Layer(480, 280, 200, 50); orangeRectangle = new Layer(520, 300, 200, 50); updateAtFixedRate(100, this); loading = 100; } public void timeUpdate(long now) { if(!CollisionDetector.colidePolygon(rectangle1, rectangle2)) { color = Color.BLUE; } else { color = Color.YELLOW; } rectangle2.setOffsetAngle(10); if(orangeRectangle.colideRect(greenRectangle)) { colideGreenOrange = true; } else { colideGreenOrange = false; } } @Override public void draw(Graphics g) { if(rectangle2.getTransform()!=null) g.setTransform(rectangle2.getTransform()); g.setColor(Color.RED); g.fillRect(rectangle2); g.resetTransform(); if(rectangle1.getTransform()!=null) g.setTransform(rectangle1.getTransform()); g.setColor(color); g.fillRect(rectangle1); g.resetTransform(); //Draw fixed rectangles g.setColor(SVGColor.GREEN); g.fillRect(greenRectangle); g.setColor(SVGColor.ORANGE); g.fillRect(orangeRectangle); if(colideGreenOrange) { g.setColor(SVGColor.RED); g.drawRect(greenRectangle); g.drawRect(orangeRectangle); } } public void updateMouse(PointerEvent event) { mx = event.getX(); my = event.getY(); if(event.isButtonDown(MouseEvent.MOUSE_BUTTON_LEFT)) { rectangle1.setCoordinates(mx, my); } if(event.isButtonDown(MouseEvent.MOUSE_BUTTON_RIGHT)) { orangeRectangle.setCoordinates(mx, my); } } }