Dragging now works properly

This commit is contained in:
Yorick
2015-03-17 10:55:34 +00:00
parent b9eb9965dc
commit ea487bd24f
3 changed files with 15 additions and 7 deletions
+9 -4
View File
@@ -1,10 +1,12 @@
package Applicatie;
import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.TexturePaint;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.NoninvertibleTransformException;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
@@ -129,6 +131,8 @@ public class Panel extends JPanel {
// g2.fill(new Ellipse2D.Double(0,0,300,300));
// g2.drawImage(podiumImage, 0, 0, null);
g2.drawLine(0, 150, getWidth(), 150);
for (BufferedImage image : panelInfo) {
g2.drawImage(image, panelInfox + scrollfactor, panelInfoy, null);
panelInfox += image.getWidth();
@@ -139,11 +143,13 @@ public class Panel extends JPanel {
AffineTransform oldTransform = g2.getTransform();
g2.setTransform(getCamera());
TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0,
0, 100, 100));
TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0,0, 100, 100));
g2.setPaint(p);
g2.fill(new Rectangle2D.Double(-1920, -1080, 3840, 2160));
BasicStroke stroke = new BasicStroke(10);
g2.setStroke(stroke);
for (DrawObject o : objects) {
o.draw(g2);
}
@@ -154,8 +160,7 @@ public class Panel extends JPanel {
public AffineTransform getCamera() {
AffineTransform tx = new AffineTransform();
tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY()
+ getHeight() / 2);
tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() + getHeight() / 2);
tx.scale(cameraScale, cameraScale);
return tx;
}
-1
View File
@@ -82,7 +82,6 @@ public class Mouse extends MouseAdapter {
}
}
if (panel.getDragObject() == null && selectedObject != null) {
System.out.println("deselected");
selectedObject.setSelected(false);
selectedObject = null;
}
+6 -2
View File
@@ -22,8 +22,12 @@ public class MouseMotion extends MouseMotionAdapter {
case "drag":
if(panel.getDragObject() != null)
panel.getDragObject().setPosition(new Point2D.Double(
(panel.getDragObject().getPosition().getX() ) - ((panel.getLastClickPosition().getX() - clickPoint.getX()) ),
(panel.getDragObject().getPosition().getY()) - (panel.getLastClickPosition().getY() - clickPoint.getY()) ));
(panel.getDragObject().getPosition().getX() ) - ((panel.getLastClickPosition().getX() - clickPoint.getX()) ) / panel.getDragObject().getScale(),
(panel.getDragObject().getPosition().getY()) - (panel.getLastClickPosition().getY() - clickPoint.getY()) / panel.getDragObject().getScale() ));
System.out.println(panel.getDragObject().getPosition().getX());
System.out.println(panel.getLastClickPosition().getX());
System.out.println(clickPoint.getX());
System.out.println("----------'");
break;
case "upperLeft":
if(clickPoint.getX() < panel.getDragObject().getPosition().getX() && clickPoint.getY() < panel.getDragObject().getPosition().getY()) {