public double getCollisionForceDirection(Point collisionpoint)
	{
		// Circles simply push the object away
		if (this.collisiontype == CollisionType.CIRCLE)
			return HelpMath.pointDirection(getX(), getY(), 
					collisionpoint.x, collisionpoint.y);
		// Walls simply push the object to the right (relative)
		else if (this.collisiontype == CollisionType.WALL)
			return getAngle();
		// Boxes are the most complicated
		else if (this.collisiontype == CollisionType.BOX)
		{
			// Calculates the side which the object touches
			Point relativepoint = negateTransformations(collisionpoint.x, 
					collisionpoint.y);
			double relxdiffer = -0.5 + relativepoint.x / (double) getWidth();
			double relydiffer = -0.5 + relativepoint.y / (double) getHeight();
			
			// Returns drection of one of the sides of the object
			if (Math.abs(relxdiffer) >= Math.abs(relydiffer))
			{
				if (relxdiffer >= 0)
					return getAngle();
				else
					return HelpMath.checkDirection(getAngle() + 180);
			}
			else
			{
				if (relydiffer >= 0)
					return HelpMath.checkDirection(getAngle() + 270);
				else
					return HelpMath.checkDirection(getAngle() + 90);
			}
		}
		
		// In case one of these types wasn't the case, returns 0
		return 0;
	}