|
|
@@ -33,39 +33,36 @@ public class Terrain extends JPanel {
|
|
|
private Draw dragObject, selectedObject;
|
|
|
private BufferedImage background;
|
|
|
|
|
|
- private int length;
|
|
|
- private int width;
|
|
|
- private int terrain;
|
|
|
-
|
|
|
+ private int length, width;
|
|
|
+ private SimulatorPane.Terrains terrain;
|
|
|
Point2D cameraPoint = new Point2D.Double(1920/2,1080/2);
|
|
|
float cameraScale = 1;
|
|
|
|
|
|
Point2D lastClickPosition;
|
|
|
Point lastMousePosition;
|
|
|
|
|
|
- public Terrain(int length, int width, int terrain){
|
|
|
+ public Terrain(int length, int width, SimulatorPane.Terrains terrain){
|
|
|
//get values
|
|
|
this.length = length;
|
|
|
this.width = width;
|
|
|
this.terrain = terrain;
|
|
|
-
|
|
|
//set terrainbackground
|
|
|
switch(terrain){
|
|
|
- case 1:
|
|
|
+ case BEACH:
|
|
|
try {
|
|
|
background = ImageIO.read(new File("res/sand.jpg"));
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
break;
|
|
|
- case 2:
|
|
|
+ case GRASS:
|
|
|
try {
|
|
|
background = ImageIO.read(new File("res/grass.jpg"));
|
|
|
} catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
break;
|
|
|
- case 3:
|
|
|
+ case URBAN:
|
|
|
try {
|
|
|
background = ImageIO.read(new File("res/street.jpg"));
|
|
|
} catch (IOException e) {
|
|
|
@@ -84,6 +81,7 @@ public class Terrain extends JPanel {
|
|
|
addMouseListener(new MouseAdapter() {
|
|
|
@Override
|
|
|
public void mousePressed(MouseEvent e) {
|
|
|
+ lastMousePosition = e.getPoint();
|
|
|
Point2D clickPoint = getClickPoint(e.getPoint());
|
|
|
boolean newObject = false;
|
|
|
if(e.getX() < 200)
|
|
|
@@ -169,9 +167,14 @@ public class Terrain extends JPanel {
|
|
|
object.setScale(scale);
|
|
|
}else{
|
|
|
cameraScale *= 1 - (e.getPreciseWheelRotation()/10.0);
|
|
|
+// if(e.getWheelRotation() == -1){
|
|
|
+// cameraScale++;
|
|
|
+// }else if(e.getWheelRotation() == 1){
|
|
|
+// cameraScale--;
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
- repaint();
|
|
|
+ repaint();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -207,6 +210,8 @@ public class Terrain extends JPanel {
|
|
|
|
|
|
//draw simulation field
|
|
|
g2.setClip(new Rectangle2D.Double(200, 0, getWidth()-200, getHeight()));
|
|
|
+ g2.translate(200,0);
|
|
|
+ g2.setTransform(getCamera());
|
|
|
TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0, 0, 500, 500));
|
|
|
g2.setPaint(p);
|
|
|
g2.fill(new Rectangle2D.Double(0,0,width,length));
|
|
|
@@ -230,10 +235,8 @@ public class Terrain extends JPanel {
|
|
|
|
|
|
if(collide){
|
|
|
g2.setColor(new Color(254, 0, 0, 128));
|
|
|
-
|
|
|
}else{
|
|
|
g2.setColor(new Color(0, 254, 0, 128));
|
|
|
-
|
|
|
}
|
|
|
g2.fill(this.selectedObject.getAffineTransform().createTransformedShape(this.selectedObject.getRect()));
|
|
|
g2.setClip(null);
|