PlayArea.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package model.objects;
  2. import java.awt.Graphics2D;
  3. import java.awt.Polygon;
  4. import java.awt.Shape;
  5. import java.awt.geom.Line2D;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. public class PlayArea {
  9. public List<Line2D> paths;
  10. public Polygon octagon;
  11. public PlayArea(int xToRight,int heightOfGameScreen,int widthOfGameScreen, int sizeOctagon) {
  12. super();
  13. paths = new ArrayList<Line2D>();
  14. int middlePointX = widthOfGameScreen/2+xToRight;
  15. int middlePointY = heightOfGameScreen/2;
  16. int amountOfAngles = 8;
  17. octagon = new Polygon();
  18. for(int i = 0; i < amountOfAngles; i++){
  19. octagon.addPoint((int)(middlePointX+sizeOctagon*Math.cos(i*Math.PI/(amountOfAngles/2))),
  20. (int)(middlePointY+sizeOctagon*Math.sin(i*Math.PI/(amountOfAngles/2))));
  21. }
  22. widthOfGameScreen += xToRight;
  23. paths.add(new Line2D.Double(middlePointX,0 ,octagon.xpoints[6],octagon.ypoints[6]));//top
  24. paths.add(new Line2D.Double(widthOfGameScreen,0 ,octagon.xpoints[7],octagon.ypoints[7]));//right -top
  25. paths.add(new Line2D.Double(widthOfGameScreen,middlePointY ,octagon.xpoints[0],octagon.ypoints[0]));//right
  26. paths.add(new Line2D.Double(widthOfGameScreen,heightOfGameScreen,octagon.xpoints[1],octagon.ypoints[1]));//right -down
  27. paths.add(new Line2D.Double(middlePointX,heightOfGameScreen ,octagon.xpoints[2],octagon.ypoints[2]));//down
  28. paths.add(new Line2D.Double(xToRight,heightOfGameScreen ,octagon.xpoints[3],octagon.ypoints[3]));//left -down
  29. paths.add(new Line2D.Double(xToRight,middlePointY ,octagon.xpoints[4],octagon.ypoints[4]));//left
  30. paths.add(new Line2D.Double(xToRight,0 ,octagon.xpoints[5],octagon.ypoints[5]));//left -top
  31. }
  32. public void draw(Graphics2D g2){
  33. for(Shape s : paths){
  34. g2.draw(s);
  35. }
  36. g2.draw(octagon);
  37. }
  38. public Line2D getLine(int index){
  39. if(index < 0){
  40. index = 0;
  41. }
  42. if(index >= 8 ){
  43. index = 7;
  44. }
  45. return paths.get(index);
  46. }
  47. }