protected void checkCollisionWith(final Entity other) {
		int shiftX = other.getPosition().getX() - pos.getX();
		int shiftY = other.getPosition().getY() - pos.getY();

		for (RectangularBounds trb : boundaries) {
			for (RectangularBounds orb : other.getBoundaries()) {
				if (trb.intersects(orb, shiftX, shiftY)) {
					boolean pixelPerfect = usePixelPerfectCollision
							|| other.isUsePixelPerfectCollision();
					if (currentBitmap == null
							|| other.getCurrentBitmap() == null) {
						pixelPerfect = false;
					}

					if (!pixelPerfect || collidesPixelPerfectWith(other)) {
						collisionWith(other);
						break;
					}
				}
			}
		}
	}