|
@@ -29,7 +29,7 @@ import javax.swing.SwingUtilities;
|
|
|
public class Terrain extends JPanel {
|
|
public class Terrain extends JPanel {
|
|
|
|
|
|
|
|
private List<Draw> entities;
|
|
private List<Draw> entities;
|
|
|
- private Point2D offset;
|
|
|
|
|
|
|
+ private Point2D offset, oldLocation;
|
|
|
private Draw dragObject, selectedObject;
|
|
private Draw dragObject, selectedObject;
|
|
|
private BufferedImage background;
|
|
private BufferedImage background;
|
|
|
|
|
|
|
@@ -68,8 +68,10 @@ public class Terrain extends JPanel {
|
|
|
offset = new Point2D.Double(e.getX() - drawObject.getX(), e.getY() - drawObject.getY());
|
|
offset = new Point2D.Double(e.getX() - drawObject.getX(), e.getY() - drawObject.getY());
|
|
|
selectedObject = dragObject;
|
|
selectedObject = dragObject;
|
|
|
newObject = true;
|
|
newObject = true;
|
|
|
|
|
+ oldLocation = new Point2D.Double(drawObject.getX(), drawObject.getY());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
if(!newObject){
|
|
if(!newObject){
|
|
|
selectedObject = null;
|
|
selectedObject = null;
|
|
|
}
|
|
}
|
|
@@ -78,7 +80,16 @@ public class Terrain extends JPanel {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void mouseReleased(MouseEvent e) {
|
|
public void mouseReleased(MouseEvent e) {
|
|
|
|
|
+ for(Draw draw: entities){
|
|
|
|
|
+ if(!draw.equals(selectedObject)){
|
|
|
|
|
+ if(intersection(draw, selectedObject)){
|
|
|
|
|
+ selectedObject.setX(oldLocation.getX());
|
|
|
|
|
+ selectedObject.setY(oldLocation.getY());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
dragObject = null;
|
|
dragObject = null;
|
|
|
|
|
+ repaint();
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -163,10 +174,8 @@ public class Terrain extends JPanel {
|
|
|
|
|
|
|
|
if(collide){
|
|
if(collide){
|
|
|
g2.setColor(new Color(254, 0, 0, 128));
|
|
g2.setColor(new Color(254, 0, 0, 128));
|
|
|
-
|
|
|
|
|
}else{
|
|
}else{
|
|
|
g2.setColor(new Color(0, 254, 0, 128));
|
|
g2.setColor(new Color(0, 254, 0, 128));
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
g2.fill(this.drawDragRectangle(this.selectedObject));
|
|
g2.fill(this.drawDragRectangle(this.selectedObject));
|