fixed overlapping objects

banaan
This commit is contained in:
xrgman
2015-03-18 12:51:30 +01:00
parent 34bc4526fc
commit 10951fe225
5 changed files with 125 additions and 41 deletions
+30 -11
View File
@@ -148,17 +148,36 @@ public abstract class DrawObject
return points;
}
public boolean collision(Point2D[] corners) {
Point2D[] ownCorners = getCorners();
for(int i = 0; i < corners.length; i++) {
Point2D corner = corners[i];
if(corner.getX() > ownCorners[0].getX() && corner.getX() < ownCorners[1].getX()) {
if(corner.getY() > ownCorners[0].getY() && corner.getY() < ownCorners[2].getY()) {
return true;
}
}
}
return false;
/**
*
* @param corners
* @return if there is a collision
*/
public boolean collision(DrawObject object) {
//Point2D[] ownCorners = getCorners();
Point2D[] objectCorners = object.getCorners();
Shape ownShape = new Rectangle2D.Double(-9, -9, image.getWidth(null) + 13, image.getHeight(null) + 13);
ownShape = getTransformSelection().createTransformedShape(ownShape);
//Shape otherShape = new Rectangle2D.Double(-9, -9,object.getImage().getWidth(null) + 13,object.getImage().getHeight(null) + 13);
//otherShape = getTransformSelection().createTransformedShape(otherShape);
if(ownShape.contains(objectCorners[0]))
return true;
else if(ownShape.contains(objectCorners[1]))
return true;
else if(ownShape.contains(objectCorners[2]))
return true;
else if(ownShape.contains(objectCorners[3]))
return true;
// if(otherShape.contains(ownCorners[0]))
// return true;
// else if(otherShape.contains(ownCorners[1]))
// return true;
// else if(otherShape.contains(ownCorners[2]))
// return true;
// else if(otherShape.contains(ownCorners[3]))
// return true;
else
return false;
}
/**